MySQL таблицы вызовов mp3, исполнители, теги

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
...

0

Решение

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 | второй | второй | ленинградский, темно-фиолетовый, светодиодный дирижабль | с, д, е |

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]