mysql - 仅当两行(不是任一行)都满足时才选择条件

标签 mysql sql

我正在研究的表格部分如下:

表:store_inventories

+---------+----------+-------+----------+
| stor_id | title_id | qty   | minStock |
+---------+----------+-------+----------+
| 8042    | TC7777   |   630 |      630 |
| 8042    | TH1217   |     0 |      630 |
| 9012    | AK1231   |  -100 |       13 |
| 9012    | AK4153   |     5 |        1 |
| 9012    | BU2075   |    39 |        7 |
| 7131    | AW1234   | 10277 |     2055 |
| 7131    | AW5678   | 13150 |     2630 |
| 7131    | BU1032   |   545 |      109 |
| 7131    | BU2075   |    35 |        7 |

如何从该表中选择 title_id,其条件同时满足(不是任一)stor_ids 9012 和 7131。

结果应该是

+----------+
| title_id | 
+----------+
| BU2075   |

我尝试了内部联接和 using and 语句,但它们要么返回错误的结果,要么返回空集。

最佳答案

使用 WHERE 子句过滤 stor_ids,使用 HAVING 计算 WHERE 子句中返回的行的实例数。

SELECT  title_id
FROM    store_inventories
WHERE   stor_ids IN (9012, 7131) -- 
GROUP   BY title_id
HAVING  COUNT(*) = 2

如果标题可以包含同一商店的多行,请使用DISTINCT

HAVING  COUNT(DISTINCT stor_ids) = 2

这是一个Demo .

关于mysql - 仅当两行(不是任一行)都满足时才选择条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48909617/

相关文章:

java - JPA 中的 getSingleResult() 抛出异常

java - 复合主键和数据截断错误

mysql - 将 gem mysql12 安装到 ruby​​ 时出错

php - 编辑 $wpdb->get_results(SQL) 返回的对象

sql - 查询 int 是否在数组列内部,Postgres 和 Rails

sql - 按组 SQL 运行总计 (Oracle)

php - 我如何重写我的 sql 查询,以便它以特定格式返回值(使用 mysql 或 php)?

php - 如何使用连接从第 3 级表中获取数据 [Laravel]

sql - 将 case 与聚合函数和 group by 子句一起使用

php - 当没有任何用户名时,如何将未知设置为列的值?