2011-11-04 43 views
1

我有2個表:Customers和Orders。客戶有很多訂單,訂單屬於客戶。訂單可以批准(由approved_at字段標記)。 我想檢索所有客戶沒有任何批准的訂單。這包括沒有任何訂單的客戶和未經批准的訂單(approved_at = null)的客戶。 我可以在沒有子查詢的單個查詢中執行此操作嗎?Sql檢索另一個表中沒有關係的字段

回答

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 
+0

我知道那是什麼關係到 「有」。 雖然它錯過了組。最後的查詢是: 'SELECT Customers。*,COUNT(Orders.id)cnt' 'FROM Customers' 'LEFT JOIN Orders ON(Customers.id = Orders.Customer_id)AND(Orders.approved_at is null)' 'GROUP BY Customers.id' 'HAVING cnt = 0' – iwiznia

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 
相關問題