- 注册
- 2004-07-18
- 消息
- 46,695
- 荣誉分数
- 20,494
- 声望点数
- 1,393
OPTIMIZER 可能会这样:我想知道下面代码是如何执行的,尤其是那两个where语句?谢谢。
原来想先写下我的想法,但是可能写一大堆都是错误的。
SELECT firtname, lastname
FROM managers
WHERE 'MA'=(SELECT jobcategoryFROM supervisorsWHERE managers.id=supervisors.id);
1) 找出 supervisors 表里的所有 jobcategory = 'MA' 的行的 id, 并把它们放到一个 cursors 里;supervisors 中的 jobcategory 最好有个 index
2) 在表 managers 中,凡是 id 在 1) 的cursors 里的,输出其 firtname, lastname
不确定是不是这样,你可以在 Oracle 里试,并且在 Oracle 里查 explain plan, 它会告诉你这个 SQL 怎么执行!