htf*_*htf 6 mysql sql group-by having
说有这样的表:
mysql> SELECT * FROM tags;
+---------+--------+
| post_id | tag_id |
+---------+--------+
| 1 | 2 |
| 1 | 3 |
| 1 | 1 |
| 2 | 1 |
| 2 | 2 |
+---------+--------+
5 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
字段名称非常明显.我想选择post_id同时具有1和3的tag_ids,所以在这个例子中它只是1.我想到了
SELECT post_id FROM tags GROUP BY post_id HAVING ...以后我想列出tag_id这个组中的s.我怎么做?
如果post_id和tag_id都有唯一约束,那么它也应该有效:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(DISTINCT tag_id) = 2;
Run Code Online (Sandbox Code Playgroud)
如果没有任何独特的约束,请尝试:
HAVING MIN(tag_id) <> MAX(tag_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12402 次 |
| 最近记录: |