加入表格

时间:2011-03-23 15:28:45

标签: mysql join

我已经充分伤害了我的大脑,现在试图弄清楚这背后的逻辑。

我有一张表如下

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

3 个答案:

答案 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]
相关问题