silverbeach Posté 11 Janvier 2009 Partager Posté 11 Janvier 2009 (modifié) Bonjour, J'ai 2 tables (table1 et table2) je recupère toutes les annonces (table1) et à chaque annonce, je récupere nom_img dont val_photo=2 de la table2 J'ai 2 requetes sql: SELECT id_annonce, nom, ville, date_an FROM table1 ORDER BY id_annonce DESC je récupère l'd_annonce puis je fais SELECT nom_img, val_photo FROM table2 WHERE (val_photo=2 and id_annonce='" . $id_annonce . "') Ca fonctionnement mais j'aimerais avoir qu'une seule requête J'ai essayé de faire la requête ci-dessous SELECT table1.id_annonce, table1.ville, table1.date_an, table2.nom_img, table2.val_photo FROM table1 LEFT JOIN table2 on table1.id_annonce = table2.id_annonce GROUP BY table1.id_annonce ORDER BY table1.id_annonce DESC puis je test si val_photo=2 mais le problème si j'ai plusieurs ligne dans table2 pour une même annonce, il ne récupère que la 1ere ligne Modifié 12 Janvier 2009 par captain_torche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 11 Janvier 2009 Partager Posté 11 Janvier 2009 Bonjour, ton test "val_photo = 2", tu le mets où ? Dans une clause "where" ou bien dans la clause de jointure (à la suite du "LEFT join xxx ON") ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
silverbeach Posté 11 Janvier 2009 Auteur Partager Posté 11 Janvier 2009 (modifié) je le fais après en php car je ne sais pas où le mettre dans la requête. si les tables sont: Table1: id_annonce / nom / ville /date 1 / annonce1 / bruxelles / 11/1/09 Table1: id_annonce / nom_img / val_photo 1 / photo1 / 0 1 / photo1 / 2 1 / photo1 / 0 j'aimerai récuperer la 1er ligne de la table 1 et la 2eme ligne de la table2 ps: j'avais oublié d'ajouter "GROUP BY table.id_annonce" dans la requete Modifié 11 Janvier 2009 par silverbeach Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 11 Janvier 2009 Partager Posté 11 Janvier 2009 Bah fais le directement dans la requête alors, sur la clause de jointure (après le ON). Si tu tiens à la version PHP, il faut accepter deux cas : si val_photo == 2 ou si val_photo === NULL (oui il y a bien 3 fois le symbol "égal" ici). Lien vers le commentaire Partager sur d’autres sites More sharing options...
silverbeach Posté 12 Janvier 2009 Auteur Partager Posté 12 Janvier 2009 je viens de le mettre sur sur la clause de jointure et ça fonctionne. Il n'y a pas longtemps que j'utilise des jointures dans mes requêtes sql et je commence à mieux comprendre le principe de fonctionnement merci beaucoups Kioob Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant