MySQL 与 Group By 的一对多连接仅返回一个观察结果

2023-11-23

我有一个评论表和一个标签表。对于每个评论,可以有多个标签,也可以没有。我想加入这两个,这样我就可以获得每个评论的标签列表。

评论表:

+---------+----------+---+
|CommentID|   Title  | ..|
+---------+----------+---+
|   1     |   animals|   |
|   2     |   plants |   |
+---------+----------+---+

标签表:

+---------+----------+---+
|  TagID  |CommentID | ..|
+---------+----------+---+
|    5    |     1    |   |
|    6    |     1    |   |
|    7    |     3    |   |
+---------+----------+---+

因此,查询应返回标签 (5,6)(对于 commentID == 1)和空数组(对于 CommentID == 2)

这就是我所拥有的 - 它只选择最后一个 ID,而不选择多个 ID:

SELECT c.CommentID, c.Title,  t.TagID  FROM Comment as c
        LEFT OUTER JOIN Tag as t ON c.CommentID = t.CommentID
        GROUP BY t.TagID

您可以使用GROUP_CONCAT将多行数据转换为单个分隔字符串:

SELECT    a.CommentID, 
          a.Title,
          GROUP_CONCAT(b.TagID ORDER BY b.TagID) AS tags
FROM      CommentTable a
LEFT JOIN TagTable b ON a.CommentID = b.CommentID
GROUP BY  a.CommentID,
          a.Title

在这种情况下,如果评论没有相应的标签,则该字段将为 NULL。


SQLFiddle 演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 与 Group By 的一对多连接仅返回一个观察结果 的相关文章

随机推荐

  • 如何在 Windows 上使用 SSH 详细模式运行 git 命令?

    这是 Windows 版本如何使用 SSH 详细模式运行 git push pull 命令 有时您只需要调试 git 对 SSH 的使用 OpenSSH 有一个 v详细输出的标志 但是如何让 git 使用它呢 如何在 Windows 上使用
  • 将用户名和密码存储在数据库中安全吗?

    我让人们在部落中提交用户名和密码 我需要知道使用此代码将其提交到数据库是否安全 或者在数据库中是否安全 MySQLCon Open Dim SQLADD As String INSERT INTO members username pass
  • 具有许多私有方法的Java测试类[重复]

    这个问题在这里已经有答案了 我有一个类负责将合同从 CSV 导入到数据库 类本身只有一个启动导入的公共方法 其他方法都是私有的 因为只有类本身会使用 并且它们保存逻辑 我开始使用 Spock 对这个类进行测试 并且有很多私有方法 我应该如何
  • 一些使用 PDO 的 ORM?

    我正在寻找一个好的 ORM 即 Active Record 它使用 php 扩展 PDO 作为基础 有什么建议吗 Doctrine or Propel
  • 带有滚动区域的嵌套弹性盒

    我正在尝试在最新的 Chrome Firefox 和 IE11 中实现这种布局 我可以通过以下方式让它工作 html box sizing border box before after box sizing inherit html bo
  • Rails 控制器中创建方法的 SQL 注入预防

    如comment controller rb中所示 def create comment Comment new params comment comment save end 我假设这是 SQL 注入不安全的 但正确的做法是什么 网上的所
  • 重写 Django ModelForm 中的 save 方法

    我无法覆盖ModelForm保存方法 这是我收到的错误 Exception Type TypeError Exception Value save got an unexpected keyword argument commit 我的目的
  • 转换 osmnx 投影地图的经纬度坐标

    我想从 osmnx 获取距离经纬度对最近的节点 下载 osmnx 图形对象后 我想对其进行投影 以便我可以按照文档中的说明从道路网络中删除死胡同 我知道我投影了图表以及需要投影的纬度 经度值 但我实际上不明白以哪种方式 例如 我在我的项目中
  • 在不填充缺失时间的情况下重新采样 Pandas 数据帧

    对数据帧进行重新采样可以使数据帧达到更高或更低的时间分辨率 大多数情况下 这用于降低分辨率 例如 将 1 分钟数据重新采样为每月值 当数据集稀疏时 例如 2020 年 2 月没有收集任何数据 2020 年 2 月的行将填充重采样数据帧的 N
  • 多个
    标签的语义含义

    使用时 dl lists将键与值关联起来 这两个样本之间是否存在语义差异 哪一个提供更好的语义 多个做什么 dd 标签在这种情况下意味着什么 Sample 1 多种的 dd items dl dt Authors dt dd John Le
  • 阻止直接访问php页面,仅在重定向时访问

    我想让我的 php 页面只能从另一个页面重定向访问 并阻止我的用户直接访问它 我的意思是 假设我有一个名为 主 php 还有另一个我想阻止直接访问的 PHP 文件 名为 noaccess php 我想让 noaccess php 仅当我从
  • 在 Android 后台服务中静默 Google 登录

    我正在我的 Android 应用程序中运行后台服务 我使用从登录活动获取的 IdToken 在后端服务器上进行身份验证 该服务正在运行START STICKY模式 因此即使应用程序关闭 该服务也会在后台继续运行以获取来自后端服务器的任何通知
  • 如何正确混合Bootstrap和BEM?

    我正在考虑慢慢重构一个相当大的项目 该项目基于 Angular Bootstrap 构建 只有 16 000 多行 CSS 耶 我一直在越来越多地研究 BEM 并相信这将是一个很好的方法 我们也很有可能转向 React 我对此还不太了解 但
  • 无法在 1.1 版本中使用 1.2 标头编译 OpenCL 应用程序

    我正在使用 Khronos Group 编写一个小型 hello world OpenCL 程序cl hpp适用于 OpenCL 1 2 和 nVidia 的 openCL 库 我的驱动程序和 ICD 支持 OpenCL 1 1 由于 nV
  • 如何使通配符在 SQL Server 报告服务中的 like 运算符中起作用?

    我使用 like 运算符添加了一个过滤表达式 我在值字段中输入什么 我的参数名为 test 我希望过滤器的功能就像 SQL 中的 test 一样 我希望它的行为像 test 这样我就可以传递 来获取查询的所有值 我通过添加带有类似运算符的过
  • Gulp 4 - Gulpfile.js 设置

    我发现有关 Gulp 4 的文档非常难找到 所以我想我可以在这里询问是否有人可以提供帮助 无论如何 我对 Gulp 还很陌生 并且一直使用 Gulp 3 没有任何问题 直到我尝试在我们用于开发的虚拟机上运行它 我的 gulp 文件非常简单
  • 如何将我的 iOS 故事板设置为像 Instagram Stream 一样弹跳?

    我正在构建一个具有社交内容流的应用程序 并试图了解 Instagram 如何在应用程序中进行流式传输的行为 因此 基本上 顶部标题会滚动到屏幕之外 但会在屏幕和内容之间弹跳 我可以使顶部标题滚动离开屏幕 并且可以使视图不反弹 但我想使用拉动
  • Java 中日期到整数的转换

    我有一个 int 变量 如下所示 如何将其转换为 Date 对象 反之亦然 int inputDate 20121220 将值转换为String并使用SimpleDateFormat将其解析为Date object int inputDat
  • 检查矩阵是否奇异的快速方法? (不可逆,det = 0)

    检查小方阵 最好的方法是计算条件号通过 SVD 并检查它是否大于 1 epsilon 其中 epsilon 是机器精度 如果您允许漏报 即矩阵有缺陷 但您的算法可能无法检测到它 您可以使用维基百科文章中的 max a ii min a ii
  • MySQL 与 Group By 的一对多连接仅返回一个观察结果

    我有一个评论表和一个标签表 对于每个评论 可以有多个标签 也可以没有 我想加入这两个 这样我就可以获得每个评论的标签列表 评论表 CommentID Title 1 animals 2 plants 标签表 TagID CommentID