0
j'ai 3 tables qui ressemblent à ceci:Rejoindre 3 tables SQL
Table1:
PersonSSN
NumberOfCars
Table2:
PersonSSN
NumberOfPhones
Table3:
PersonName
PersonSSN
Les deux Tableau 1 et Tableau 2 ont une référence clé étrangère sur Table3 PersonSSN.
J'ai besoin de joindre ces de telle sorte que je reçois: NomPersonne NumberOfPhones NumberOfCars
Voici quelques conditions applicables à la jointure:
- Si une personne a une entrée dans Table1 et Table2 je vois tous les 3 champs peuplés pour lui.
- Si une personne a une entrée dans Table1 et non Tableau2 il devrait encore apparaître, mais avec NumberOfPhones à 0.
- De même, si une personne a une entrée dans Tableau2 et non au tableau 1, il devrait encore apparaître, mais avec NumberOfCars défini sur 0.
Est-ce que cela peut être réalisé en une seule requête? Si oui, quelle devrait être la requête?
Cela ne semble pas fonctionner. Je manque des données pour les personnes présentes dans le tableau 2 mais pas dans le tableau 1. Tout le reste semble bon. – Shan
@Shan: S'il vous plaît envisager de fournir un [cas de test SQL Fiddle] (http://sqlfiddle.com/) démontrant comment cette solution ne fonctionne pas, car, autant que je peux dire, il * devrait * fonctionner. –
@Shan. . . Est-ce que tous les 'SSN's dans' table3'? Cela se produirait si 'table3' ne couvre pas l'ensemble de la population dans les deux tableaux. –