select * from tab1 where not exists (select 1 from tab2 where tab1.col=tab2.col) 因为你select 1 from tab2 where tab1.col=tab2.col这个查询不需要得到查询结果 用select 1 的效率比select columnname高 所有就用select 1
select 1 from table;与select anycol(目的表集合中的任意一行) from table;与select * from table 从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
select 1 from tab2; 查询的结果
把tab1中所有与tab2的col对应列值相同的记录去除以后的所有记录 select 1 from 就是说不关心具体的记录,只关心是否有结果。