我不是 SQL 专家,但我不是一个完全的业余爱好者,但这是对一个包含 2 个字段的单个表的查询,我不知道如何处理。
假设您有一张桌子,上面有班级# 和学生#。您如何找到只有学生 x、y 和 z 的班级?
我真正的问题更像是一个目录和项目编号表,以及如何找到所有具有(或多或少)指定项目的目录。
我唯一的想法是围绕 GROUP_CONCAT 进行匹配,但必须有 b731e 一种更优雅的方式......
编辑:我错误地陈述了这个问题,所以我也会提供表结构。这个问题更像是装在盒子里的产品,一个盒子可能包含多个特定产品,而您希望找到具有完全指定内容的盒子。因此,例如,该表是:
+------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| box_id | bigint(20) | YES | | NULL | |
| product_id | bigint(20) | YES | MUL | NULL | |
+------------+------------+------+-----+---------+----------------+
我想找到所有包含 2 件产品 ID 22、17 件和 55 件的盒子。不多也不少。