【问题标题】:join tables on two different columns在两个不同的列上连接表
【发布时间】:2019-03-30 03:45:44
【问题描述】:
Table 1   Bus_ID   Owner_ID   #owners in Bus
           12345       5558        3
           12345       5856        3
           52858     **7894**      1
           12345       1254        3

Table 2   Owner_1   Owner_2    Relationship
           5558      5856    Parent of Owner_1
           5558      1254    Parent of Owner_1
           1254      5856    Spouse
           5856      1254    Spouse
           **7894**  6868    Spouse
           6868    **7894**  Spouse

我有两张桌子想加入。只能通过Owner_ID = Owner_1Owner_ID = Owner_2 加入。我想最终得到表 1 aswel 中的Owner_ID

我的预期结果:

Bus_ID  Owner_ID  Owner_1  Owner_2  Relationship 
 12345    5558     5558     5856   Parent of Owner_1
 12345    5558     5558     1254   Parent of Owner_1
 12345    5856     5856     1254   Spouse
 12345    1254     1254     5856   Spouse 

如您所见,如果 Owner_ID 没有出现在表 1 中,我不希望它出现在联合表中,但是当加入 7894 时,因为表 2 中有关系,它会出现无论如何,我加入他们的方式。我需要帮助来连接这两个表。

select Bus_ID, Owner_ID, Owner_1, Owner_2, Relationship from table 1 
join table 2 on (Owner_ID = Owner_1 AND Owner_ID = Owner_2). 

这个查询不会给出我期望的输出。

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    在下面尝试通过别名对 table2 的多个实例使用连接

    select Bus_ID, Owner_ID, t2.Owner_1, t3.Owner_2, t2.Relationship 
    from table1 t1 join table2 t2 on t1.Owner_ID = t2.Owner_1 
    join table2 t3 on t1.Owner_ID = t3.Owner_2 
    

    【讨论】:

      【解决方案2】:

      你可以试试这样的:

      select 
          Bus_ID, Owner_ID, Owner_1, Owner_2, Relationship 
      from table 1 
      inner join table 2 on Owner_ID = Owner_1
      
      UNION
      
      select 
          Bus_ID, Owner_ID, Owner_1, Owner_2, Relationship 
      from table 1 
      inner join table 2 on Owner_ID = Owner_2
      

      这样你会得到:

      • 遵守条件Owner_ID = Owner_1的所有行
      • 遵守条件Owner_ID = Owner_2的所有行

      您将立即将它们全部归还。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-20
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多