J'ai 2 tables:
Table: Films P>
Movie1 -- 1 -- 1 -- 1 Movie2 -- 1 -- 0 -- 0
3 Réponses :
Le group_concat () code> strong>
fonction peut faire le tour, ici.
Non testé, mais je suppose que quelque chose comme ça devrait fonctionner: p>
En supposant que vous souhaitez que des colonnes séparées sont renvoyées pour chaque type:
SELECT m.Name, SUM(CASE WHEN t.Type = 'DVD' THEN 1 ELSE 0 END) AS DVD, SUM(CASE WHEN t.Type = 'Bluray' THEN 1 ELSE 0 END) AS Bluray, SUM(CASE WHEN t.Type = 'VCD' THEN 1 ELSE 0 END) AS VCD FROM Movies m LEFT JOIN Types t ON m.MovieID = t.MovieID GROUP BY m.Name
J'aime vraiment cette façon d'obtenir des données supplémentaires à partir de lignes jointes - c'est assez rapide et vous pouvez avoir des conditions relativement liées à la valeur des enregistrements en utilisant.
SELECT m.Name, IF(t1.Type IS NOT NULL, 1, 0) as DVD, IF(t2.Type IS NOT NULL, 1, 0) as Bluray, IF(t3.Type IS NOT NULL, 1, 0) as VCD FROM Movies m LEFT OUTER JOIN Types t1 on m.MovieID = t1.MovieID and t1.Type = 'DVD' LEFT OUTER JOIN Types t2 on m.MovieID = t2.MovieID and t2.Type = 'Bluray' LEFT OUTER JOIN Types t3 on m.MovieID = t3.MovieID and t3.Type = 'VCD'