简体   繁体   English

根据特定列值连接两个表

[英]Joining two tables based on specific column value

I have two tables (Table 1 and Table 2) that I want to join them and create Table 3. The logic is the following: 我有两个表(表1和表2),我想加入它们并创建表3.逻辑如下:

Table 1 表格1

column1 | column1 | column2 | column2 | column3 栏3
user1 | user1 | ID1 | ID1 | name1 名1
user2 | user2 | ID2 | ID2 | name2 NAME2
user3 | user3 | ID3 | ID3 | name3 NAME3
user4 | user4 | ID4 | ID4 | name4 NAME4


Table 2 表2

column1 | column1 | column2 COLUMN2
user1 | user1 | ACT1 ACT1
user1 | user1 | ACT1 ACT1
user1 | user1 | ACT1 ACT1
user1 | user1 | ACT1 ACT1
user2 | user2 | ACT2 ACT2
user3 | user3 | ACT3 ACT3
user3 | user3 | ACT3 ACT3
user3 | user3 | ACT3 ACT3
user4 | user4 | ACT4 ACT4


I want the joined table to be this way: 我希望连接表是这样的:

Table 3 表3

column1 | column1 | column2 | column2 | column3 栏3
user1 | user1 | ACT1 | ACT1 | ID1 ID1
user1 | user1 | ACT1 | ACT1 | ID1 ID1
user1 | user1 | ACT1 | ACT1 | ID1 ID1
user1 | user1 | ACT1 | ACT1 | ID1 ID1
user2 | user2 | ACT2 | ACT2 | ID2 ID2
user3 | user3 | ACT3 | ACT3 | ID3 ID3
user3 | user3 | ACT3 | ACT3 | ID3 ID3
user3 | user3 | ACT3 | ACT3 | ID3 ID3
user4 | user4 | ACT4 | ACT4 | ID4 ID4


Basically, Table 3 is the same as Table 2. But, the corresponding ID for each user is fetched from Table1 and joined as a separate column. 基本上,表3与表2相同。但是,每个用户的相应ID从Table1获取并作为单独的列连接。 This process is repeated for all users. 对所有用户重复此过程。

You just need to use JOIN by column1 column from Table1 and Table2 您只需要使用Table1Table2 column1列的JOIN

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

[Results] : [结果]

| 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 sqlfiddle

seems you need an inner join between table1 and table2 based on column1 看来你需要基于column1的table1和table2之间的内部联接

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

You can have that answer even more simple: 你可以更简单地得到答案:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM