如果有 3 个以上的表连接查询, 那就需要选择交叉表 (intersection table)作为基础表,交叉表是指那个被其他表所引用的表。...由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什么时候起作用,然后再决定放在那里。
(12)减少对表的查询: 在含有子查询的SQL语句中,要特别注意减少对表的查询....)通常将提高查询的效率.在子查询中,NOT IN子句将执行一个内部的排序和合并....一般可以考虑用EXIST 替换,EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果.例子:
(低效): SELECT DISTINCT DEPT_NO...通常,带有UNION, MINUS , INTERSECT的SQL语句都可以用其他方式重写.