首页 > 解决方案 > 从一个表中获取数据以及来自另一个表的连接数据

问题描述

我在 Mysql 中有 3 个表:

带有 |ID|Name| 列的产品,带有 |ID|Name| 列的
标签 第三个是
带有 |ID|prodID|tagID| 的 ProductTagsRelations。

第三个包含带有产品 ID 的行以及它们链接到的每个标签。
我可以从 Products 表中获取所有数据,其中每个标签都与标签表中的每个标签相关,在单个字符串或其他任何内容中,全部在一个查询中?

标签: mysql

解决方案


您可以通过加入表格并对产品进行分组来做到这一点:

select 
  p.id, p.name,
  group_concat(t.name order by t.name) tags
from Products p
left join ProductTagsRelations r on r.prodid = p.id
left join Tags t on t.id = r.tagid
group by p.id, p.name

您将group_concat()获得每个产品的标签列表。
请参阅演示


推荐阅读