繁体   English   中英

当另一行具有相同的 id 但列中的值不同时,如何在 SQL 中选择一行?

[英]How do I select one row in SQL when another row has same id but a different value in a column?

我正在创建一个网站,您可以在其中共享具有多个标签的帖子,现在我遇到了一个帖子被多次显示的问题,每个帖子都有一个标签。 在我的数据库中,我有一个表帖子和一个表标签,您可以在其中链接 post_id。 现在我的问题是:我怎样才能在这篇文章上只获得一篇文章但有多个标签?

数据库查询截图

这应该可以工作,如果需要,编辑列名:

SELECT *, 
(SELECT GROUP_CONCAT(DISTINCT tag) FROM tags WHERE post_id = posts.id) 
FROM posts

您可以在 MySQL 中使用 GROUP_CONCAT(),在 MS SQL Server 中使用 string_agg()

SELECT posts.id,GROUP_CONCAT(tags.tag)
FROM posts
Left JOIN tags on tags.post_id = posts.id
GROUP BY posts.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM