首页 > 解决方案 > 根据特定列值连接两个表

问题描述

我有两个表(表 1 和表 2),我想加入它们并创建表 3。逻辑如下:

表 1

column1 | 第 2 列 | 列 3
用户 1 | ID1 | 名称
1 用户 2 | ID2 | 名称 2
用户 3 | ID3 | 名称
3 用户 4 | ID4 | 名称 4


表 2

列 1 | 列 2
用户 1 | ACT1    用户1
| ACT1    用户1
| ACT1    用户1
| ACT1    
用户2 | ACT2    
用户3 | ACT3 用户3    
| ACT3 用户3    
| ACT3    
用户4 | ACT4    


我希望连接表是这样的:

表 3

列 1 | 第 2 列 | 列 3
用户 1 | 第一幕 | ID1    
用户1 | 第一幕 | ID1    
用户1 | 第一幕 | ID1    
用户1 | 第一幕 | ID1    
用户2 | 行动2 | ID2    
用户 3 | 行动3 | ID3    
用户3 | 行动3 | ID3    
用户3 | 行动3 | ID3    
用户4 | ACT4 | ID4    


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

标签: mysqlsqljoinleft-joinhue

解决方案


您只需要按列从和JOIN使用column1Table1Table2

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

[结果]

| column1 | column2 | column3 |
|---------|---------|---------|
|   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 |

sqlfiddle


推荐阅读