3 table de jointure sql
J'ai besoin de joindre tableA, tableB, et tableC, mais il est possible que la tableB n'aurez pas de ligne correspondante. Posté ci-dessous est la façon dont je suis en train de faire la requête. Le problème c'est que si la tableB n'ont pas de correspoinding ligne, il ne renvoie pas à un résultat. Mes compétences sql sont très rouillés donc, je vous remercie de votre aide. Merci.
SELECT [column names]
FROM tableA AS a, tableB AS b, tableC as c
WHERE b.blah = a.blah
AND c.foo = a.foo
AND [more where conditions]
- qui SGBD que vous utilisez?
Vous devez vous connecter pour publier un commentaire.
Utiliser un
LEFT JOIN
.De ne pas utiliser le
,
de la syntaxe. UtilisationJOIN
afin de permettre une lisibleLEFT JOIN
...Si l' [plus où les conditions de travail] sont sur B, alors vous devez les inclure dans la JOINTURE EXTERNE SUR la clause.
La terminologie ici (de sorte que vous pouvez regarder plus de détails) est une Jointure Externe. L'autre réponse(s) sont sans problème, mais attention, si vous le souhaitez
INNER
ouOUTER
jointure sur la table c (voulez-vous d'enregistrements retournés si il n'y a pas de lignes correspondantes dans tableC)? Voici un lien pour la question générale.http://www.w3schools.com/sql/sql_join_left.asp