如何选择不同条件的同一列?

Vic*_*tor 1 sql-server

我试图从两个表中选择数据.
-warehouse有两列:warehouseId,warehouseName
-transportation有三列:transporter,warehouseId1,warehouseId2
我想从两个表中选择并从表A获取warehouseName for warehouseId1和warehouseId2这里是我的代码,但它不起作用.

select a.transporter, b.warehouseName as warehouse1, b.warehouseName as warehouse2
from transportation a, warehouse b
where a.warehouseId1 = b.warehouseId and a.warehouseId2 = b.warehouseId
Run Code Online (Sandbox Code Playgroud)

Mar*_*zek 6

你必须添加warehouse两次FROM(只记得为它们使用两个不同的别名):

SELECT
    a.transporter,
    b1.warehouseName as warehouse1,
    b2.warehouseName as warehouse2
FROM
    transportation a,
    warehouse b1,
    warehouse b2
WHERE
        a.warehouseId1 = b1.warehouseId
    AND
        a.warehouseId2 = b2.warehouseId
Run Code Online (Sandbox Code Playgroud)

或使用JOIN语法:

SELECT
    a.transporter,
    b1.warehouseName AS warehouse1,
    b2.warehouseName AS warehouse2
FROM
    transportation a
JOIN
    warehouse b1 ON a.warehouseId1 = b1.warehouseId
JOIN
    warehouse b2 ON a.warehouseId2 = b2.warehouseId
Run Code Online (Sandbox Code Playgroud)