57 votes

Comment écrire une requête SQL "pas dans ()" en utilisant join

Quelqu'un pourrait-il s'il vous plaît fournir comment écrire la requête SQL suivante à l'aide de jointures. Je ne veux pas utiliser pas aussi bien que si possible , je voudrais remplacer lorsque l' état aussi bien.

 SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
  SELECT d2.Short_Code
  FROM Domain2 d2
)

J'utilise SQL Server 2008

17voto

Aducci Points 10573
SELECT d1.Short_Code 
FROM domain1 d1
LEFT JOIN domain2 d2
ON d1.Short_Code = d2.Short_Code
WHERE d2.Short_Code IS NULL

4voto

Rob Paller Points 4610

J'opterais pour NOT EXISTS dans ce cas.

 SELECT D1.ShortCode
FROM Domain1 D1
WHERE NOT EXISTS
    (SELECT 'X'
     FROM Domain2 D2
     WHERE D2.ShortCode = D1.ShortCode
    )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X