Aller au contenu

Faire une requete avec 2 requêtes


silverbeach

Sujets conseillés

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é par captain_torche
Lien vers le commentaire
Partager sur d’autres sites

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é par silverbeach
Lien vers le commentaire
Partager sur d’autres sites

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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...