Mam 4 tabele:
1. Tabela t_movies
id, id_rating, title_pl
2. Tabela t_ratings
id, rating
3. Tabela t_genres
id, genre
4. Tabela t_movies_genres
id,id_movie,id_genre
Chcę pobrać wszystkie dane z tabeli t_movies (oprócz t_rating). Dodatkowo chcę pobrać rating (z tabeli t_ratings) oraz genre (z tabeli t_genres).
Skonstruowałem takie zapytanie:
SELECT m.id,m.title_pl,r.rating,g.genre FROM t_movies AS m,t_ratings AS r,t_movies_genres AS mg,t_genres AS g WHERE m.id_rating = r.id AND m.id = mg.id_movie AND g.id = mg.id_genre
Moje pytanie brzmi: Jak skonstruować zapytanie by title_pl unikatowe a było wiele genre dla niego.
Uff, rozwiązałem problem poniżej rozwiązanie, a może komuś się przyda.
SELECT m.id,m.title_pl,r.rating,g.genre,GROUP_CONCAT(DISTINCT g.genre SEPARATOR ', ') AS gatunki FROM t_movies AS m,t_ratings AS r,t_movies_genres AS mg,t_genres AS g WHERE m.id_rating = r.id AND m.id = mg.id_movie AND g.id = mg.id_genre GROUP BY m.title_pl