人のテーブルがあるとしましょう...
person:
-----------
id | person
---+-------
1 | Jim
2 | Bob
3 | Frank
...そして、アイテムのテーブルがあります...
item:
----------------
id | item | type
---+------+-----
1 | 21 | 2
2 | 10 | 5
3 | 11 | 1
4 | 9 | 1
...そして、誰が何を持っているかを説明する表もあります...
person_item:
-------------
item | person
-----+-------
1 | 2
2 | 1
3 | 1
個人が特定の種類のアイテムを複数持っている場合に通知する単一のクエリを作成するにはどうすればよいですか? タイプ (1, 2, 3) のアイテムのみに関係するクエリが必要です。
クエリの結果は、次の形式である必要があります。
---------------
person | item
| item
--------+------
person | item
| item
| item
--------+------
... etc.
これは私が試したことです...しかし、ゴミが生成されます...
SELECT person.id, item.id FROM person_item AS pi
JOIN item AS i ON i.id = pi.item
JOIN person AS p ON p.id = pi.item
WHERE item.type IN (1,2,3)
HAVING COUNT(pi.person) > 1;