mp3s
ID
Title
Description
теги
ID
Title
художники
ID
Title
artist_relations
mp3ID //call to mp3s.ID
artistID // call to artists.ID
tag_relations
mp3ID //call to mp3s.ID
tagID // call to tags.ID
Мне нужен этот результат в одном запросе:
row1 : mp3ID | mp3Title | mp3Description | tag1,tag2,tag3 | artist1
row2 : mp3ID | mp3Title | mp3Description | tag20,tag22 | artist8,artist5
...
select
mp3.ID as mp3id,
mp3.title as mp3title,
mp3.description as mp3description,
group_concat(distinct artist.title) as artists,
group_concat(distinct tag.title) as tags
from mp3s as mp3
left join artist_relations as ar
on ar.MP3ID = mp3.ID
left join artists artist
on ar.ARTISTID = artist.ID
left join tag_relations as tr
on tr.MP3ID = mp3.ID
left join tags as tag
on tag.ID = tr.TAGID
group by mp3.ID
И я попытался воспроизвести на специально созданной БД со структурой, которую вы описали, и получил такой результат:
| mp3_id | mp3_title | mp3_description | художники | теги |
| 1 | первый | первый | земфира, селезенка | а, б |
| 2 | второй | второй | ленинградский, темно-фиолетовый, светодиодный дирижабль | с, д, е |
Других решений пока нет …