J'ai une table qui représente une liste de pays. J'ai une autre table qui représente une liste d'états. J'ai un autre tableau qui représente une liste de provinces. En raison de la mauvaise définition des données, certains états sont réellement dans la table des provinces et vice-versa. Peu importe, chaque province et chaque état est associé à un pays.SQL - Deux jointures externes
Je dois essentiellement faire une jointure externe double gauche. Ma question est, comment puis-je faire cela? Voici ce que j'essaie actuellement:
select
c.Name as 'CountryName',
ISNULL(p.[Name], '') as 'ProvinceName',
ISNULL(s.[Name], '') as 'StateName'
from
Country c
left outer join [Province] p on p.[CountryID]=c.[ID]
left outer join [State] s on s.[CountryID]=c.[ID]
Veuillez noter que j'ai besoin de faire quelque chose de comparable à deux jointures externes gauches. C'est une version simplifiée de la requête que j'essaie de faire. Merci de votre aide!
Pouvez-vous publier des données d'échantillon et ce que vous attendez? –
Notez pour les lecteurs que certains serveurs SQL tels qu'Oracle traitent une chaîne vide comme NULL. Bien qu'il semble que vous utilisiez MS SQL Server, il les traite comme prévu. c'est-à-dire dans Oracle ce serait inutile NVL (p.Name, '') ... – Matt