gpt4 book ai didi

mysql - SQL 选择具有多个共同值的行

转载 作者:可可西里 更新时间:2023-11-01 07:56:41 26 4
gpt4 key购买 nike

我在根据条件选择某些文章行时遇到问题。

这是我的问题:我的所有文章都可以附加多个“标签”,所以我的结构如下所示:

articles       articles_tags       tags
¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯
id article_id id
title tag_id name
content
[...]

例如,现在我想选择同时具有标签 2 和 3 的所有文章。我试过这个:

SELECT * FROM articles a
JOIN articles_tags at
ON (a.id = at.article_id)
WHERE
at.tag_id IN(2, 3)
GROUP BY article_id

但是这将选择所有至少具有标签 ID #2 或 #3 的文章(毕竟看起来合乎逻辑)

是否有任何技巧或其他方法可以仅获取具有已定义标签 ID 列表的文章?

谢谢

最佳答案

这个问题叫做关系划分

SELECT  a.*
FROM articles a
INNER JOIN
(
SELECT at.article_id
FROM articles a
INNER JOIN articles_tags at
ON a.id = at.article_id
WHERE at.tag_id IN(2, 3)
GROUP BY at.article_id
HAVING COUNT(*) = 2
) b ON a.id = b.article_id

关于mysql - SQL 选择具有多个共同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com