从一个表获取数据以及从另一个表获取的合并数据

时间:2019-05-15 21:34:33

标签: mysql

我在Mysql中有3个表:

  

带有列| ID | Name |,
的产品也带有列   | ID |名称|第三个是
ProductTagsRelations与   | ID | prodID | tagID |。

这第三行包含带有产品ID的行以及它们链接到的每个标签。
我可以从Products表中获取所有数据,并在单个查询中以单个字符串之类的方式从Tags表中获取与每个标签相关的每个标签吗?

1 个答案:

答案 0 :(得分:1)

您可以通过加入表格并按产品分组来实现:

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(),您可以获得每个产品的标签列表。
请参见demo