Answer Posted / subathra
IN: Inner query executes first and drives the outer query.
EXISTS: Outer query executes first and compares tge rows
retrived with the inner query.
Consider table tab1 has 1000 rows and table tab2 has 1000
rows.
IN: select t1.empid from tab1 t1 where t1.code in (select
t2.code from tab2 t2) -- All rows in t1 will read with t2
and the effect is 1000 X 1000 rows.
EXISTS: select t1.empid from tab1 t1 where exists (select 1
from tab2 t2 where t1.code=t2.code) -- Max of 1 row will be
read for each row of t1 and thus reduces the processing
overhead.
Thumb rule:
1) If the majority of the filtering are in the sub query
then use IN.
1) If the majority of the filtering are in the outer query
then use EXISTS.
| Is This Answer Correct ? | 4 Yes | 0 No |
Post New Answer View All Answers
how to drop an existing table in mysql? : Sql dba
Can we group by two columns in sql?
Explain the working of primary key?
What is an intersect?
Give the order of sql select?
Explain the uses of database trigger.
Suppose a student column has two columns, name and marks. How to get name and marks of the top three students.
How to get unique records from a table?
Can sql developer connect to db2?
Are null values same as that of zero or a blank space?
Do we need commit after truncate?
how is myisam table stored? : Sql dba
What are types of exception?
How do I count duplicates in sql?
Write an sql query to select all records from the table?