gpt4 book ai didi

mysql - SQL 查询 : get tags associated with post

转载 作者:可可西里 更新时间:2023-11-01 06:59:19 26 4
gpt4 key购买 nike

我有三个表。

posts
| id | title |
+---------+-----------+
| 1 | hello |
| 2 | goodbye |
+---------+-----------+

posts_tags
| tag_id | post_id |
+---------+-----------+
| 1 | 1 |
| 2 | 1 |
| 2 | 2 |
+---------+-----------+

tags
| id | name |
+---------+-----------+
| 1 | news |
| 2 | photos |
+---------+-----------+

我希望能够选择帖子,但结果是这样

post.id    post.title    tags
------------------------------------
1 hello news,photos
2 goodbye photos

有点像

SELECT *,
GROUP_CONCAT(tags.name) AS tags
FROM posts
LEFT JOIN posts_tags
ON posts.id = posts_tags.post_id
LEFT JOIN tags
ON posts_tags.tag_id = tags.id

似乎没有正常工作。请指教,感谢您的宝贵时间:)

最佳答案

您需要在查询中添加一个 GROUP BY 子句:

SELECT posts.*,
GROUP_CONCAT(tags.name ORDER BY tags.name) AS tags
FROM posts
LEFT JOIN posts_tags
ON posts.id = posts_tags.post_id
LEFT JOIN tags
ON posts_tags.tag_id = tags.id
GROUP BY posts.id

我还在上面的 GROUP_CONCAT 中添加了一个顺序,以按照您指定的顺序连接标签。

关于mysql - SQL 查询 : get tags associated with post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262923/

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