使用多个ON条件在MySQL中进行LEFT JOIN

时间:2012-10-30 15:19:35

标签: mysql

我知道如何使用单个条件或使用WHERE键IS NULL在MySQL中进行LEFT JOIN,但是如果在ON语句中有多个条件,那么如何做?我有一张发票表,其中包含订单号和发票日期。我还有一个包含订单号和发货日期的船舶表。我想退回发票表中没有相应记录的任何项目。例如......

invoice table:

InvoiceNum  OrderNum  InvoiceDate
106433        136365      2011-10-03
111888        136365      2012-06-19

ship table:

OrderNum   ShipDate
136365       2012-06-19

我想写一个查询,它将从发票表中返回发票号106433。有人知道如何最好地做到这一点。我正在将其他表加入到查询中,但这是我无法搞清楚的问题。感谢任何人的帮助!

1 个答案:

答案 0 :(得分:7)

您可以使用ONANDOR子句中的multiple conditions

select i.InvoiceNum
from invoice  i
left outer join ship s on i.OrderNum = s.OrderNum  
    and i.InvoiceDate = s.ShipDate
where s.OrderNum is null

SQL Fiddle Example