我正在尝试将表连接到另外两个表,将它们引用到连接表中。例如:
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详细信息吗?
对于糟糕的解释感到抱歉,但我们将不胜感激。
感谢。
阿娇。
答案 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之间的第一个内部联接可以被视为一个单独的表,所以你只需要加入那个 - 一种虚构的表 -