我想从下表中获取至少订购了两种产品的客户。这些表是:
Customer(Id, Name, City),
Product(Id, Name, Price),
Orders(Customer_Id, Product_Id, Date)
我使用查询
select c.*
from customer c
join orders o on o.customer_id = c.id
group by c.id
having count(o.customer_id) >= 2
它返回预期的结果,但是当我用它替换JOIN
它LEFT JOIN
时仍然提供相同的结果。它不会按照规定返回 Customer 表的所有行LEFT JOIN
。为什么LEFT JOIN
在这种情况下功能受限?由于有人无法区分匹配结果与仅出现在左表中的结果吗?