Bonjour le labo,
N'ayant plus fait de sql depuis des années, je galère un peu sur un problème pourtant basique
Je vous en livre ici une version "simplifiée" (en vrai, la requête est plus compliqué = plus de tables, mais le principe est identique)
J'ai 3 tables
- voiture (id_voiture, modele, numero_assurance)
- conducteur (id_conducteur, nom, telephone)
- voiture_pilote (id_voiture, id_conducteur)
Attendu qu'une même voiture peut avoir plusieurs conducteurs (ou aucun).
Attendu qu'un conducteur peut avoir plusieurs voitures (ou aucune).
Je cherche à obtenir la liste des voitures (sans doublon, donc une même voiture ne peut apparaitre qu'une seule fois). Même s'il n'y a pas de conducteur associé, et même s'il y a plusieurs conducteurs (je veux le premier conducteur trouvé dans la table voiture_pilote, ou même n'importe lequel).
Ma requête actuelle :
SELECT v.id_voiture, v.modele, v.numero_assurance
FROM voiture v
LEFT JOIN voiture_pilote AS p WHERE v.id_voiture = p.id_voiture
LEFT JOIN conducteur as c WHERE p.id_conducteur = c.id_conducteur
ORDER BY v.id_voiture
La requête retourne des résultats, mais ça me renvoie une même voiture autant de fois qu'il y a de conducteurs associés.
Help !
|