2010-09-19 32 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