I am making a music classification database using PHP and MySQL. I have three tables:
Song:
ID | Title
------------------------
1 | Example Song
Genre:
ID | Name
------------------------
1 | Classical
2 | Instrumental
SongGenre
SongID | GenreID
----------------
1 | 1
1 | 2
My Query is:
SELECT s.title, GROUP_CONCAT(DISTINCT g.name SEPARATOR ', ')
FROM song s
LEFT JOIN songgenre sg ON s.id=sg.s_id
LEFT JOIN genre g ON sg.genreid = g.id
I'm using GROUP_CONCAT to allow for multiple genres as shown:
Title: "Example Song" Genres: Classical, Instrumental
I wish to generate a link in PHP for each genre, so that if the user clicks on "Classical" they are brought to more songs listed as Classical. The issue is, I am unsure how to give each genre its' own link. The issue with GROUP_CONCAT is that both genres are returned together in the same row, and I am unsure how to split the row apart to add a link to each separate genre.