Присоединяйся к столу на себя - PullRequest
3 голосов
/ 23 марта 2011

Я уже сильно повредил свой мозг, пытаясь выяснить логику этого.

У меня есть следующая таблица

entry_id | cat_id
       1 | 233
       1 | 234
       1 | 678
       2 | 235
       2 | 453
       2 | 21
       3 | 234
       3 | 123

Есть ли способ вернуть в одном запросе каждый идентификатор категории, который также связан с одинаковыми идентификаторами входа. Таким образом, оператор select будет выбирать на основе cat_id, например 234. Что будет возвращено, это идентификаторы категории: 233, 678, 123

Ответы [ 3 ]

10 голосов
/ 23 марта 2011
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
5 голосов
/ 23 марта 2011
SELECT cat_id FROM table
  WHERE entry_id IN (SELECT entry_id FROM table WHERE cat_id = 234)
AND cat_id <> 234
1 голос
/ 23 марта 2011
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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...