6

我知道如何在 MySQL 中使用单个条件或使用 WHERE key IS NULL 来执行 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。有人知道如何最好地做到这一点。我正在将其他表加入到查询中,但这是我无法弄清楚的表。感谢任何人都可以提供的任何帮助!

4

1 回答 1

11

您可以使用,等在子句中包含多个条件。ONANDOR

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 小提琴示例

于 2012-10-30T15:21:17.140 回答