2010-09-19 34 views
1

我有表itemstore(這是一個商店管理系統)。 item表有一個名爲store_id的列和另一個名爲status的列。 item.status可以是「出售」或「未售出」。MySQL - 有條件的SELECT

我需要幫助編寫查詢,將做這些事情:

  • 選擇所有商店
  • 的所有項目,如果一個店只有一個項目,該項目是「賣」,從刪除項目結果集

在此先感謝!

回答

3

您可以創建一個篩選子查詢,用於搜索具有多個商品或一個未售出商品的商店。然後你可以加入子查詢的原始表,如:

select * 
from (
     select s2.store_id 
     from store s2 
     join items i2 
     on  s2.store_id = i2.store_id 
     group by 
       s2.store_id 
     having 
       count(*) > 1 -- More than one item 
       or max(i2.status) = 'unsold' -- One item but unsold 
     ) filter 
join store s 
on  filter.store_id = s.store_id 
join items i 
on  s.store_id = i.store_id