SQL jointure externe gauche sur plusieurs colonnes

Selon cette Jointure SQL cheat-sheet, une jointure externe gauche sur une colonne est la suivante :

SELECT *
  FROM a
  LEFT JOIN b 
    ON a.foo = b.foo
  WHERE b.foo IS NULL 

Je suis vous demandez-vous à quoi il pourrait ressembler, avec une jointure sur plusieurs colonnes, il devrait être une OR ou un AND dans le WHERE clause ?

SELECT *
  FROM a
  LEFT JOIN b 
    ON  a.foo = b.foo
    AND a.bar = b.bar
    AND a.ter = b.ter
WHERE b.foo IS NULL 
  OR  b.bar IS NULL 
  OR  b.ter IS NULL

ou

SELECT *
  FROM a
  LEFT JOIN b 
    ON  a.foo = b.foo
    AND a.bar = b.bar
    AND a.ter = b.ter
WHERE b.foo IS NULL 
  AND b.bar IS NULL 
  AND b.ter IS NULL

?

(Je ne le pense pas, mais en cas de questions, le moteur de base est Vertica)

(Je parie sur le OR un)

OriginalL'auteur François M. | 2016-10-13