2015-10-29 77 views
0

我有這個表:只顯示一致的記錄

item_number  item  owner_id  status 
-----------  ----  --------  ------ 

12648  Powerbank  5569  returned 
657891  Flash drive  5569  returned 
6326   Wireless Mouse 5569  sold 
987998  Pocket Wifi  8897  sold 
78134  Wireless Mouse 7741  sold 
7845159  Keyboard   1598  sold 
87513  Monitor   1598  sold 
9841523  Speakers   8965  returned 

,我希望結果是這樣的:

item_number  item  owner_id  status 
-----------  ----  --------  ------ 
987998  Pocket Wifi  8897  sold 
78134  Wireless Mouse 7741  sold 
7845159  Keyboard   1598  sold 
87513  Monitor   1598  sold 

所以,基本上,我要的是提取了業主一貫銷售的物品。一旦用戶有退回的物品,那麼他不應該出現在結果中。

有人可以幫我嗎?

非常感謝!

+0

結果中「item_number」的邏輯是什麼? –

回答

1

如果你想要誰沒有返回任何所有者的所有行,然後使用not exists條款:

select t.* 
from table t 
where not exists (select 1 
        from table t2 
        where t2.owner_id = t.owner_id and t2.status <> 'sold' 
       ); 

如果你只是想業主的名單,然後我會去的聚集和having

select owner_id 
from table t 
group by owner_id 
having sum(status <> 'sold') = 0; 
+0

非常感謝!這幫了很多.. –