gpt4 book ai didi

php - sql连接问题

转载 作者:行者123 更新时间:2023-12-04 06:35:23 26 4
gpt4 key购买 nike

我想选择包含特定标签的所有帖子。我正在尝试使用此查询:

SELECT GROUP_CONCAT(t.tag_name) taglist
FROM posts p
JOIN posts_tags pt ON p.post_id = pt.post_id
JOIN tags t ON t.tag_id = pt.tag_id
WHERE (p.post_private = 0) AND t.tag_name = 'php'
GROUP BY p.post_id

问题是,上面的查询选择了所有包含 php 的帖子。标签,但不选择帖子可能包含的任何其他标签。没有 AND t.tag_name = 'php'部分,它确实选择了帖子的每个标签,但我希望能够按标签过滤...

任何想法如何做到这一点?我尝试了很多东西,但无法弄清楚......

没有 AND 的样本数据陈述:
|| *taglist* ||
|| php,echo ||
|| c++, cout ||

带有 AND 的样本数据陈述:
|| *taglist* ||
|| php ||

我想要的是:
|| *taglist* ||
|| php,echo ||

(仅包含 PHP 标签的帖子)

最佳答案

SELECT p.post_id, GROUP_CONCAT(t.tag_name) taglist
FROM posts p
/* These 2 joins get the list of all tags */
INNER JOIN posts_tags pt
ON p.post_id = pt.post_id
INNER JOIN tags t
ON pt.tag_id = t.tag_id
/* These 2 joins guarantee the 'php' tag is included */
INNER JOIN posts_tags pt2
ON p.post_id = pt2.post_id
INNER JOIN tags t2
ON pt2.tag_id = t2.tag_id
AND t2.tag_name = 'php'
WHERE p.post_private = 0
GROUP BY p.post_id

关于php - sql连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950073/

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