【问题标题】:How To create correct Join between two tables?如何在两个表之间创建正确的联接?
【发布时间】:2015-03-24 10:20:01
【问题描述】:

我有两个表,我想从这两个表中获取数据。

客户详情

Id Customer1 Customer2
1  1         2
2  2         1
3  1         3

CustomerName

Id Name
1  a
2  b
3  c

输出应该是

Id Customer1 Customer2
1   a         b
2   b         a
3   a         c

我尝试了内部连接,但它只适用于一列,而不适用于两列。

我如何从 sql 查询中获取这些数据。

请帮我找到这个。

谢谢

【问题讨论】:

  • 您是否尝试过使用ON 子句中的两列和OR。你试过什么?

标签: sql views sql-view


【解决方案1】:

使用 2 joins

select t1.id,t2.name customer1 ,t3.name customer2
from customerdetail t1 
join customername t2 on t1.customer1=t2.id
join customername t3 on t1.customer2=t3.id

【讨论】:

    【解决方案2】:
    SELECT Id,
           CN1.Name AS Name1,
           CN2.Name AS Name2
    FROM   CustomerDetails CD
           JOIN CustomerName AS CN1
                ON CD.Customer1 = CN1.ID
           JOIN CustomerName AS CN2
                ON CD.Customer2 = CN2.ID
    

    我会使用LEFT JOIN 这样做,因为这样会更安全。我不知道你是否总是对 Customer1Customer2 都有值

    【讨论】:

      【解决方案3】:

      这应该可行:

      SELECT CD.Id,
         CN1.Customer1,
         CN2.Customer2
      FROM   CustomerDetails CD
         JOIN CustomerName AS CN1
              ON CD.Customer1 = CN1.ID
         JOIN CustomerName AS CN2
              ON CD.Customer2 = CN2.ID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-29
        • 2022-06-15
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-21
        • 2022-07-22
        相关资源
        最近更新 更多