2017-04-03 6 views
0

共関連クエリはどのように機能しますか?内側のクエリは外側のクエリの行に従って反復処理されますか? 1つのID列が1、2、3の学生テーブルがあるとします。どのようなボディでも絵を描くことができますか?Oracleの関連するクエリですか?

答えて

0

相関サブクエリは、主テーブルの各行に対して1回実行されます(理論的には可能な最適化は考慮されていません)。 s.ID = 1サブクエリを返さない行について

(s1.ID < 1つの戻り何も)s.ID = 2、それは1を返し、

(述語< 2 s1.id)ため

s.IDため

= 3が返し1,2-

したがって、最初の行(s.ID = 1)、(サブクエリが何行を返さない)選択された第二行の

されていない(S .ID = 2)述語はs.id < any (1)であり、これはに書き換えられます参照のANY ための規則および2 < 1は、第三行の

FALSEであるように行が選択されていない(s.ID = 3)述語もFLASEあるs.id < 1 OR s.id < 2に書き換えられるs.id < any (1,2)あります。

だから、クエリ

create table student as 
select rownum id from dual connect by level <= 3; 

select * 
from student s where s.id < any (select s1.id from student s1 where s1.id < s.id); 

リターン空の結果(ノー行)

関連する問題