SQL在连接时获取多个值

toz*_*iah 2 sql

嗨,我有一个SQL表有两个表,它们在一个单独的表中引用相同的外键两次......类似于

销售表

idSales idClient1 idClient2
1       1         2
Run Code Online (Sandbox Code Playgroud)

客户表

idClient ClientName
1        Bob
2        Mick
Run Code Online (Sandbox Code Playgroud)

我想将SALES表加入CLIENT表并返回如下数据:

idSales idClientClientName1 idClientClientName2
1       Bob                 Mick
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助SQL吗?我在加入时遇到了模糊的列名错误.

谢谢

Joh*_*Woo 8

您需要基本上将表连接两次,因为表ClientSales有两列Sales依赖于表Client.

SELECT  a.idSales,
        b.ClientName ClientName1,
        c.ClientName ClientName2
FROM    Sales a
        INNER JOIN Client b
            ON a.idClient1 = b.idClient
        INNER JOIN Client c
            ON a.idClient2 = c.idClient
Run Code Online (Sandbox Code Playgroud)

要进一步了解联接,请访问以下链接:

但是当其中一列或两列都可以为空时,INNER JOIN不会给你所有记录,Sales因为它只会选择它在另一个表上至少有一个匹配的位置.而是使用LEFT JOIN.