我有2个表:客户和订单。客户有很多订单,订单属于客户。订单可以批准(由字段approved_at标记)。 我想在没有任何批准订单的情况下检索所有客户。这包括没有任何订单的客户和订单未批准的客户(approved_at = null)。 我可以在没有子查询的单个查询中执行此操作吗?
答案 0 :(得分:1)
SELECT ..., COUNT(Orders.id) AS cnt
FROM Customers
LEFT JOIN Orders ON (Customers.id = Orders.Customer_id) AND (Orders.approved_at is null)
HAVING cnt = 0
答案 1 :(得分:0)
SELECT c.*
FROM Customers c
LEFT JOIN Orders o ON c.ID = o.CustomerID
WHERE o.ID IS NULL OR c.Approved_at IS NULL