0

我一直无法想出一个正确的查询来处理 SQL Server 中的这种情况。

有两个表,Warehouse 和 Transfer:

仓库

  • wh_id(PK)
  • wh_name

转移

  • transfer_id(PK)
  • transfer_from(FK)
  • transfer_to (FK)

我需要一个查询来返回:

  • transfer_id
  • transfer_from - 名称,而不是 id
  • transfer_to - 名称,而不是 id

到目前为止我已经尝试过:

SELECT T.transfer_id, WH.wh_name, T.transfer_to
FROM transfer AS T INNER JOIN warehouse AS WH
ON T.transfer_from = WH.wh_id

这只给出了 transfer_from 的名称,而不是 transfer_to 的名称。我需要类似的查询,但我的 SQL 专业知识水平很低,我只是不知道如何解决这个问题。非常感谢任何指导。

4

2 回答 2

5

您需要加入表格warehouse两次,因为您需要从表格中的两列获取等效名称transfer

SELECT  a.transfer_ID,
        b.wh_name AS from_name,
        c.wh_name AS to_Name
FROM        transfer a
            INNER JOIN warehouse b
                ON a.transfer_from = b.wh_id
            INNER JOIN warehouse c
                ON a.transfer_to = c.wh_id
于 2012-10-25T15:49:43.620 回答
0
select tr.transfer_id, wh_from.wh_name, wh_from.wh_name
from transfer tr, warehouse wh_from, warehouse wh_to
where tr.transfer_From = wh_From.wh_id
and tr.transfer_to = wh_to.wh_id
于 2012-10-25T15:50:05.243 回答