выбрать значения, совпадающие со значением из другого столбца в той же таблице - PullRequest
0 голосов
/ 22 февраля 2012

Мне нужна помощь в написании запроса.То, что я пытаюсь сделать, это проверить, есть ли у какого-либо category_id оба (или даже больше) заданных тега tag_id.Я ищу наиболее оптимальный запрос ...

, если для какого-либо category_id есть оба (или даже больше) тега_id

id              int(10) NO  PRI     auto_increment
client_id       int(10) YES         
category_id     int(10) YES         
tag_id          int(10) YES 

пример данных:

41  1   137 183
40  1   137 124
39  1   136 179
38  1   136 124
62  1   143 263
61  1   143 200
60  1   143 135
59  1   143 131
58  1   143 125

Ответы [ 2 ]

1 голос
/ 22 февраля 2012
SELECT category_id
FROM Mytable
WHERE tag_id IN(183, 200)
GROUP BY category_id
HAVING COUNT(Distinct tag_id) = 2
1 голос
/ 22 февраля 2012

Значение, проверенное в предложении HAVING, должно быть равно количеству элементов в предложении IN.

SELECT category_id
    FROM YourTable
    WHERE tag_id IN (124, 183)
    GROUP BY category_id
    HAVING COUNT(DISTINCT tag_id) = 2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...