私は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 | |
+------------+------------+------+-----+---------+----------------+
商品 ID が 22、17 のうちの 1 つ、および 55 のうちの 1 つのアイテムが正確に 2 つ含まれているすべてのボックスを検索したいと考えています。それ以上でもそれ以下でもありません。