繁体   English   中英

MySQL使用联结表为每个曲目选择多个艺术家记录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM