我需要帮助编写查询。我正在尝试做的是检查,如果任何category_id同时给出了tag_id(甚至更多)。我正在寻找最优化的查询...
如果任何category_id同时具有(甚至更多)tag_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
答案 0 :(得分:1)
HAVING子句中测试的值应该等于IN子句中的元素数。
SELECT category_id
FROM YourTable
WHERE tag_id IN (124, 183)
GROUP BY category_id
HAVING COUNT(DISTINCT tag_id) = 2;
答案 1 :(得分:1)
SELECT category_id
FROM Mytable
WHERE tag_id IN(183, 200)
GROUP BY category_id
HAVING COUNT(Distinct tag_id) = 2