[英]Mysql select multiple artist records per track using a junction table
首先,我不确定是否可以在1查询中执行此操作,但我希望如此。
我有这些表:
artist
- id
- name
track
- id
- title
track_artist
- track_id
- artist_id
(with UNIQUE index on the combined columns)
一个轨道可以有多个艺术家,一个艺术家可以有多个轨道,因此它们两者都使用联结表具有ManyToMany关系。
现在,我想了解#1轨迹包括某种形式的数组(作为记录,也许命名内的值的信息artists
),它包含了与该跟踪所有艺术家的记录。
伪代码中的哪个最终应该看起来像这样:
- id : 1
- title : "example Track Title"
- artists :
[
- id : 1
- name : "Foo Artist Name"
],
[
- id : 2
- name : "Bar Artist Name"
]
这可能吗? 如果没有,最好的方法是什么?
是的,您可以使用以下查询来做到这一点
Select t.id,t.tital , group_concat(a.name) as artist name
from track t join track_artist ta on t.id=ta.track_id inner join
artist a on a.id=ta.artist_id group by t.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.