J'ai 3 tables:SELECT valeurs DISTINCTS après un JOIN
Vehicle: vehicle_id, vehicle_type
1, motorcycle
2, car
3, van
Owners: person_id, vehicle_id, date_bought
1, 1, 2009
1, 2, 2008
2, 3, 2009
2, 1, 2005
Je veux afficher une liste de tous les noms de véhicules. Si le person_id = 1
, date_bought
doit également être retourné.
Je pensais que je voudrais commencer par ceci:
SELECT * FROM vehicles
LEFT JOIN Owners USING (vehicle_id)
qui retourne ceci:
1, 1, motorcycle, 2009
1, 2, car, 2008
2, 3, van, 2009
2, 1, motorcycle, 2005
Cependant, je peux pas réduire cela à le résultat nécessaire. Si j'utilise DISTINCT(car_id)
, il n'y a pas de changement car je choisis déjà des identifiants de voiture distincts avant le JOIN; ils ne sont pas distincts après la jointure. Si j'utilise WHERE person_id = 1
, j'enlève les 2 dernières lignes et toute référence à la camionnette a disparu. Si j'utilise GROUP BY car_id
, les première et dernière rangées sont combinées mais le date_bought
pour la moto est choisi arbitrairement. Ce que je veux est la suivante:
1, 1, motorcycle, 2009
1, 2, car, 2008
, 3, van,
Je dois exiger une pièce d'identité de voiture distincte, mais cela se produit avant que la jointure et n'a donc aucun effet. Comment puis-je obtenir l'unicité avec le JOIN?
Cela fonctionne parfaitement. Merci beaucoup! –