SQL - 外部将一个表连接到另外两个表中

时间:2013-01-16 10:47:11

标签: sql database join

我正在尝试将表连接到另外两个表,将它们引用到连接表中。例如:

table1 = order_header
table2 = order_line
table3 = inventory

所以我需要获得特定的订单,所以我需要查看order_header和order_line,并且还想要检索可能不存在的库存记录(这是我认为外部联接的位置)。问题是,我能看到库存是否存在的唯一方法是查看order_header和order_line以匹配库存。

order_header.location = inventory.location
order_line.product = inventory.product

但我可以在外部加入库存,同时引用order_header和order_line详细信息吗?

对于糟糕的解释感到抱歉,但我们将不胜感激。

感谢。

阿娇。

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * FROM order_header
INNER JOIN order_line ON order_header.header_id = order_line.header_id
LEFT OUTER JOIN inventory ON order_line.product = inventory.product AND order_header.location = inventory.location
WHERE order_header.header_id = xxx

它的工作原理是因为order_header和order_line之间的第一个内部联接可以被视为一个单独的表,所以你只需要加入那个 - 一种虚构的表 -