我已经充分伤害了我的大脑,现在试图弄清楚这背后的逻辑。
我有一张表如下
entry_id | cat_id
1 | 233
1 | 234
1 | 678
2 | 235
2 | 453
2 | 21
3 | 234
3 | 123
是否有办法在单个查询中返回,每个类别ID也与相同的条目ID相关联。因此,select语句将基于cat_id进行选择,例如234.返回的是类别ID: 233,678,123
答案 0 :(得分:10)
SELECT t2.cat_id
FROM mytable t1
JOIN mytable t2
ON t2.entry_id = t1.entry_id
AND t2.cat_id <> t1.cat_id
WHERE t1.cat_id = 234
答案 1 :(得分:5)
SELECT cat_id FROM table
WHERE entry_id IN (SELECT entry_id FROM table WHERE cat_id = 234)
AND cat_id <> 234
答案 2 :(得分:1)
select t1.*
from yourtable t1
join yourtable t2 on (t1.entry_id=t2.entry_id and t1.cat_id<>t2.cat_id)
where t2.cat_id=[your cat]