jointure sql renvoie null si la valeur ne trouve pas
J'ai de la table avec des pays, des centres de villégiature et des photos pour les stations. Chaque photo peut être marqué comme le titre de l'album. Je veux choisir rejoint dataset avec les pays, le nom et l'identifiant de station-id, le nom et la photo que si elle a marqué que le titre, sinon null.
J'ai essayé de faire ce qui suit:
select
s.id as c_id,
s.name as c_name,
t.id as r_id,
t.name as r_name,
p.thumbnail as image,
p.description as desc,
p.is_title
from dbo.countries s
join dbo.resorts t on t.state=s.inc
left outer join dbo.resorts_photo p on p.resort_id=t.inc
where s.inc=@country_id
Et j'ai une liste de toutes les photos - titrée et pas. Si je l'ajout de filering par is_title déposée ( 'et p.is_title=1') toutes les stations qui n'a pas titré photo sera droppped hors de résultat datase - pas ce que je veux.
Je veux juste avoir quelque chose comme (voir la dernière ligne):
c_id c_name r_id r_name image desc is_title
2 Australia 17 Adelaida 0xXXXX NULL 1
2 Australia 178 BB Rief 0xXXXX blah 1
2 Australia 160 Brum NULL NULL NULL
Vous devez vous connecter pour publier un commentaire.
Inclure les prédicat(s) dans votre condition de JOINTURE plutôt que la clause where de sorte qu'ils ne causent pas de la totalité de la ligne à supprimer: