2013-05-13 93 views
0

所以,我想選擇是完全不活動的MySQL的加入客戶。我有以下聲明選擇具有有效服務訂單的所有客戶。沒有與有效訂單的MySQL選擇客戶JOIN

SELECT DISTINCT u.* FROM users u INNER JOIN orders o ON o.assigned=u.id AND o.status!=0 

這工作得很好。但是現在我試圖選擇先前有訂單但訂單已停用的客戶(o.status將等於0)。我有以下聲明(即接近),但它返回的客戶仍然有活動的訂單,但有另一個已停用的訂單。

SELECT DISTINCT u.* FROM users u INNER JOIN orders o ON o.assigned=u.id AND o.status!=1 

所以在外行方面,基本上客戶可以有多個服務訂單。每項服務都是獨立的,我想選擇完全停用的客戶。例如:

蘇珊具有2個服務訂單,1被激活,而另一個去激活。目前,Susan正在被停用並且不正確的用戶列表中。只有訂單完全停用的客戶。

謝謝!

回答

0
SELECT u.* 
    FROM users u 
    LEFT 
    JOIN orders o 
    ON o.assigned=u.id 
    AND o.status!=0 
WHERE o.assigned IS NULL; 

或類似的東西

0

爲了解釋這種情況下,你需要做一個WHERE子句將包括對SELECT語句。

例如:

select distinct u.* from users u inner join orders o 
on o.assigned=u.id and o.status!=1 
where u.id != (select distinct s.id from users s inner join orders r 
on r.assigned = s.id and r.status!=0 where s.id == u.id) 
相關問題