sql - MySQL - 条件选择

标签 sql mysql select if-statement conditional-statements

我有表 itemstore(这是一个商店管理系统)。 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/

相关文章:

c# - 从 SQL 数据库中读取架构名称、表名称和列名称并返回到 C# 代码

php - PDO(准备语句)错误 - 无法将 PDOStatement 类型的对象用作数组

mysql - SQL 更新并在单个查询中选择

mysql - 如何更改我的 sql 以在 mysql 中的 MySql 存储过程中循环?

sql - 无法连接到 SQL Express“错误 : 26-Error Locating Server/Instance Specified)

java - SQLite 搜索查询不适用于双数据类型数据?

mysql - 将多行合并为一列

css - Bootstrap 和 Bootstrap-Select - 使 Select 和其他元素适合 div 宽度,100% 宽度/高度

MySQL - 连接同一个表两次但获取不同的结果

mysql - 使用不同的where条件mysql一次更新所有行