次のようなデータを含む と のentry_id2つの列を持つテーブルがあります。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 になります。可変数の自己結合を持たないソリューションを探しています - これは可能ですか?