MySQL - 条件SELECT

时间:2010-09-19 12:56:07

标签: sql mysql select if-statement conditional-statements

我有表itemstore(这是商店管理系统)。 item表有一列名为store_id,另一列名为statusitem.status可以“出售”或“未售出”。

我需要帮助编写一个可以执行以下操作的查询:

  • 选择所有商店的所有商品
  • 如果商店只有一个商品且该商品为“已售出”,请从结果集中删除该商品

提前致谢!

1 个答案:

答案 0 :(得分: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