Pages

Social Icons

Wednesday 24 October 2012

How to avoid NOT IN in sql query


Below is the examples to demonstrate the how to avoid NOT IN in SQL query. Not In heats the performance very badly You must have noticed several instances where developers write query as given below.

SELECT t1.*
FROM Table1 t1
WHERE t1.ID NOT IN (SELECT t2.ID FROM Table2 t2)
GO

The query demonstrated above can be easily replaced by Outer JOIN. Indeed, replacing it by Outer JOIN is the best practice. The query that generates the same result as above is shown here using Outer JOIN and WHERE clause in JOIN.
view sourceprint?

/* LEFT JOIN - WHERE NULL */

SELECT t1.*,t2.*
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.ID = t2.ID
WHERE t2.ID IS NULL

The above example can also be created using Right Outer JOIN.


1 comment: