una tablas rapida optimizar optimizacion mas lento hacer grandes consultas consulta con como sql sql-server tsql notin

tablas - Cómo escribir una consulta SQL "no en()" usando join



optimizar consultas mysql explain (3)

Este artículo:

puede ser de interés para usted.

En un par de palabras, esta consulta:

SELECT d1.short_code FROM domain1 d1 LEFT JOIN domain2 d2 ON d2.short_code = d1.short_code WHERE d2.short_code IS NULL

funcionará pero es menos eficiente que un constructo NOT NULL (o NOT EXISTS ).

También puedes usar esto:

SELECT short_code FROM domain1 EXCEPT SELECT short_code FROM domain2

Esto no usa ni NOT IN ni WHERE (¡e incluso ninguna unión!), Pero esto eliminará todos los duplicados en domain1.short_code si hay alguno.

¿Podría alguien proporcionar por favor cómo escribir la siguiente consulta SQL usando combinaciones? No deseo el uso no tan bien como sea posible. Me gustaría reemplazar también la condición.

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

Estoy usando SQL Server 2008


Optaría por NOT EXISTS en este caso.

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


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