根据特定的列值连接两个表

时间:2018-07-21 18:47:58

标签: mysql sql join left-join hue

我有两个表(表1和表2),我想将它们连接起来并创建表3。逻辑如下:

表1

第1列|第2列|专栏3
user1 | ID1 |名称1
 user2 | ID2 |名称2
 user3 | ID3 |名称3
 user4 | ID4 |名称4


表2

第1列|专栏2
user1 | ACT1
user1 | ACT1
user1 | ACT1
user1 | ACT1
user2 | ACT2
user3 | ACT3
user3 | ACT3
user3 | ACT3
user4 | ACT4


我希望联接表是这样的:

表3

第1列|第2列|专栏3
user1 | ACT1 | ID1
user1 | ACT1 | ID1
user1 | ACT1 | ID1
user1 | ACT1 | ID1
user2 | ACT2 | ID2
user3 | ACT3 | ID3
user3 | ACT3 | ID3
user3 | ACT3 | ID3
user4 | ACT4 | ID4


表3基本上与表2相同。但是,从表1中获取每个用户的对应ID,并将其作为单独的列加​​入。对所有用户重复此过程。

3 个答案:

答案 0 :(得分:1)

您只需要使用JOINcolumn1的{​​{1}}列中的Table1

Table2

[结果]

select t2.*,t1.column2 as column3
from Table1 t1 
inner join Table2 t2 on t1.column1 = t2.column1  

sqlfiddle

答案 1 :(得分:1)

似乎您需要基于column1在table1和table2之间进行内部联接

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

答案 2 :(得分:1)

您可以更简单地获得答案:

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