Problème de jointure.. je pense.
Mise en contexte rapide:
J'ai une galerie d'image, et chaque image peut avoir ou non une mention. Comme il y a plusieurs mention, (dans ce cas-ci: 2) , je dois savoir SI il y en a AU MOINS 1 d'active pour chaque image.
Bon, voici ma requête:
Code:
1 2 3 4 5 6 7 8 9 10
|
SELECT i .* , m.img_small
FROM 2g3p_j_galerie_image AS j
LEFT JOIN 2g3p_image AS i ON ( i.id = j.id_image )
LEFT JOIN 2g3p_j_mention_image AS jm ON ( jm.id_image = j.id_image )
LEFT JOIN 2g3p_mention AS m ON ( m.id = jm.id_mention
AND m.img_small =1 )
WHERE j.id_galerie = '2' |
j'ai isolé 2 left join ensemble car c'est eux qui s'occupe de trouver le dernier champ qui me pose problème.
Voici le résultat:
Code:
1 2 3 4 5 6 7 8
|
id | no | titre | img_small |
-------------------------------------------------
7 | Img-007 | Test 7 | NULL |
8 | #004 | Clique Là! | NULL |
9 | test | bonhomme | NULL |
10 | #0005 | Sexy | NULL |
10 | #0005 | Sexy | 1 | |
Si j'utilise un GROUP BY i.id , dans ce cas-ci, la requête va garder seulement la premiere ligne et supprimer le 1 de la deuxième.
Des idées ?