SQL三表连接帮助 - 没有订单日期的客户

时间:2014-11-03 16:37:46

标签: mysql join

我有三个表的(大大简化)模式如下:

enter image description here

我正在寻找在特定日期范围内没有订单的客户查询数据库。我知道LEFT JOIN可以用来简单地找到没有发票等的客户,但我不确定如何利用JOIN(或者甚至OUTER JOIN)来引入日期范围。< / p>

这是否可以使用SQL JOIN或我是否应该使用NOT IN语法来查找不在给定结果集中的客户?

我的数据库软件是MySQL。

1 个答案:

答案 0 :(得分:1)

试试这个:

select c.*
from customers c left join
     invoices i
     on c.code = i.customer_code and
        i.date between DATE1 and DATE2
where i.customer_code is null;

关键的想法是将日期范围放在on子句中。