基于特定列值连接两个表

ui7jx7zq  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(256)

我有两个表(表1和表2),我想连接它们并创建表3。逻辑如下:
表1
第1列|第2列|第3列
用户1     | id1型       | 姓名1
用户2     | id2型       | 姓名2
用户3     | id3公司       | 姓名3
用户4     | id4型       | 姓名4
表2
第1列|第2列
用户1     | 行动1   
用户1     | 行动1   
用户1     | 行动1   
用户1     | 行动1   
用户2     | 行动2   
用户3     | 行动3   
用户3     | 行动3   
用户3     | 行动3   
用户4     | 行动4   

我希望联接表是这样的:

表3
第1列|第2列|第3列
用户1     | 行动1    | id1型   
用户1     | 行动1    | id1型   
用户1     | 行动1    | id1型   
用户1     | 行动1    | id1型   
用户2     | 行动2    | id2型   
用户3     | 行动3    | id3公司   
用户3     | 行动3    | id3公司   
用户3     | 行动3    | id3公司   
用户4     | 行动4    | id4型   
基本上,表3与表2相同。但是,每个用户对应的id是从表1中获取的,并作为一个单独的列连接起来。对所有用户重复此过程。

6mw9ycah

6mw9ycah1#

你可以得到更简单的答案:

select  t1.column1, t2.column2, t1.column2 as column3 
from table1 as t1,  table2 as t2 
where t1.column1 = t2.column1
7xzttuei

7xzttuei2#

你只需要使用 JOINcolumn1 列自 Table1 以及 Table2 ```
select t2.*,t1.column2 as column3
from Table1 t1
inner join Table2 t2 on t1.column1 = t2.column1

[结果]:
column1column2column3
user1ACT1ID1
user1ACT1ID1
user1ACT1ID1
user1ACT1ID1
user2ACT2ID2
user3ACT3ID3
user3ACT3ID3
user3ACT3ID3
user4ACT4ID4
sqlfiddle公司
km0tfn4u

km0tfn4u3#

似乎需要表1和表2之间基于列1的内部联接

select  t1.column1, t2.column2, t1.column2 as column3 
from table1 t1 
inner join table2 t2 on t1.column1 = t2.column1

相关问题