mysql - 通过两个字段从一个表中选择数据

标签 mysql

我的表结构是

item_id (int)
category_id (int)

这是一些示例数据:

╔═════════╦═════════════╗
║ item_id ║ category_id ║
╠═════════╬═════════════╣
║    2    ║      4      ║
║    2    ║      5      ║
║    3    ║      5      ║
║    6    ║      9      ║
║    1    ║      2      ║
║    4    ║      5      ║
║    6    ║      3      ║
║    4    ║      4      ║
╚═════════╩═════════════╝

我无法通过第二个字段的多选来选择一行。

例如,我需要选择包含 category_id = 4 和 5 的所有行

最佳答案

我猜你需要这样的东西:

http://sqlfiddle.com/#!9/019c4/2

SELECT item_id 
FROM items
WHERE category_id IN (4, 5)
GROUP BY item_id 
HAVING COUNT(DISTINCT category_id)=2

关于mysql - 通过两个字段从一个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227401/

相关文章:

c++ - 当询问某个值与 null 之间的差异时,mysql 返回 null

php、mysql、打开数据库花费太长时间

php laravel 从过去一周的数据库中获取数据

sql - 如何在 SQL 中计算行数直至达到特定值

php - 可捕获的 fatal error : Object of class PDO could not be converted to string in

mysql - 计算不同条件下的所有相同列并获得最大的一个

PHP & MySQL : Special Characters: ¨Ñ, 等

MySQL查询未购买的客户

mysql - 使用 Ballerina MYSQL 客户端连接时 sql 连接器配置错误

mysql - CakePHP 大写表名 MySQL