Sql在另一个表中检索没有关系的字段

时间:2011-11-04 16:52:57

标签: mysql sql database join

我有2个表:客户和订单。客户有很多订单,订单属于客户。订单可以批准(由字段approved_at标记)。 我想在没有任何批准订单的情况下检索所有客户。这包括没有任何订单的客户和订单未批准的客户(approved_at = null)。 我可以在没有子查询的单个查询中执行此操作吗?

2 个答案:

答案 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