次のようなデータを含む と のentry_id
2つの列を持つテーブルがあります。cat_id
エントリ ID | cat_id
1 2
1 3
1 4
1 5
1 6
1 7
この例では、が、、cat_id
の任意のグループに分割されていると想像してください。(2,3)
(4,5)
(6,7)
次のクエリを使用しています。
SELECT DISTINCT
t1.entry_id
FROM
items t1
JOIN
items t2
ON
t2.entry_id = t1.entry_id
JOIN
items t3
ON
t3.entry_id = t1.entry_id
WHERE
t1.cat_id IN (2, 3)
AND
t2.cat_id IN (4, 5)
AND
t3.cat_id IN (6, 7)
entry_id
のを返します1
。
クエリは機能しますが、状況に応じて、自己結合の数は 1 ~ 5 になります。可変数の自己結合を持たないソリューションを探しています - これは可能ですか?