mysql - 从一个表中获取数据以及来自另一个表的连接数据
问题描述
我在 Mysql 中有 3 个表:
带有 |ID|Name| 列的产品,带有 |ID|Name| 列的
标签 第三个是
带有 |ID|prodID|tagID| 的 ProductTagsRelations。
第三个包含带有产品 ID 的行以及它们链接到的每个标签。
我可以从 Products 表中获取所有数据,其中每个标签都与标签表中的每个标签相关,在单个字符串或其他任何内容中,全部在一个查询中?
解决方案
您可以通过加入表格并对产品进行分组来做到这一点:
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()
获得每个产品的标签列表。
请参阅演示。
推荐阅读
- javascript - 在自定义 jquery 函数中重复淡入/淡出,避免间隔或超时
- python - 有没有办法让这个算法变得更干净或更好看?(等级/平均计算器)
- android - 如何使用 viewpager2 实现这一点?
- python - Django 3.0 表单:表单错误未显示在模板上
- python - Q:Pygame 如何让我的关卡在玩家移动时左右滚动?
- javascript - 无法在 .then() 之外更改外部变量
- python - 使用 Beautiful Soup 进行网页抓取,无法从 application/json 数据中获取序列化日期和其他键值对
- python - python套接字应该有多快?为什么我的运行速度很慢?
- rest - 在使用 Web 服务 xamarin 时显示选择器项目
- mysql - 升级到 Ubuntu 20.04 (rails) 后无法再连接到 RDS MySQL