首页 文章

根据特定列值连接两个表

提问于
浏览
1

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

Table 1

column1 | column2 |栏3
user1 | ID1 |名1
user2 | ID2 | NAME2
user3 | ID3 | NAME3
user4 | ID4 | NAME4

Table 2

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

我希望连接表是这样的:

Table 3

column1 | column2 |栏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相同 . 但是,每个用户的相应ID从Table1获取并作为单独的列连接 . 对所有用户重复此过程 .

3 回答

  • 1

    您只需要使用 JOIN column1 列的 JOINTable2

    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

  • 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
    
  • 1

    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
    

相关问题