mysql - 根据特定列值连接两个表

标签 mysql sql join left-join hue

我有两个表(表 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      |第二幕    
用户3      |行动3    
用户3      |行动3    
用户3      |行动3    
用户4      | ACT4    


我希望连接表是这样的:

表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      |第四幕     | ID4    


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

最佳答案

您只需使用 Table1Table2 中的 column1 列进行 JOIN

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

关于mysql - 根据特定列值连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459122/

相关文章:

sql - 从 SQL Server 中的大量表中删除时如何减少事务日志的使用?

sql - 从连接表中删除事件记录条目而不删除原始记录

java - 非法参数异常 : argument type mismatch in Hibernate while using AliasToBeanResultTransformer and MySQL UNION SQLQuery

Php mysqli 和存储过程

php - 我正在建立一个酒店数据库,但似乎不知道如何删除已经预订的房间

mysql - 加入两个表并保存到third-sql

mysql - 寻找产品的最早历史条目我应该加入历史/产品表还是在产品表中存储值?

mysql - 在 MySQL 逻辑子表达式中处理 NULL 的最佳方法

php - 运行多个sql,需要先运行一个,然后两个一起运行 PHP

mysql - Sql - 使用子查询更新 sql