我有一个包含两列的表:entry_id
和cat_id
,其数据如下:
entry_id | cat_id
1 2
1 3
1 4
1 5
1 6
1 7
对于这个例子,假设cat_id
s 被分成任意组(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 之间。我正在寻找一个没有可变数量的自连接的解决方案 - 这可能吗?