我有表 item
和 store
(这是一个商店管理系统)。 item
表有一个名为 store_id
的列和另一个名为 status
的列。 item.status
可以是“已售出”或“未售出”。
我需要帮助来编写一个将执行这些操作的查询:
- 选择所有商店的所有商品
- 如果一家商店只有一件商品并且该商品已“售出”,则从结果集中删除该商品
提前致谢!
最佳答案
您可以创建一个过滤子查询来搜索包含不止一件商品或一件未售出商品的商店。然后您可以在原始表上加入子查询,例如:
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
关于sql - MySQL - 条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745751/