次のクエリの違いを説明できますか?サブクエリの結合は同じように見えますが、最初のクエリは正常に実行され、2番目のクエリは実行されません。 2番目のクエリでは、サブクエリはエイリアステーブルeにアクセスできないようです。サブクエリの内部結合
QUERY1
select e.ename
,e.deptno
,(
select count(*)
from emp d
where e.deptno = d.deptno
) dept_cnt
from emp e
order by 2;
QUERY 2
select e.ename
,e.deptno
,(
select count(*)
from emp d
inner join e
ON d.deptno = e.deptno
) dept_cnt
from emp e
order by 2;
クエリ1のサブクエリがテーブルエイリアス(e)の内部結合ではありませんか? – tp9
いいえ。クエリ1では、where句を使用してemp(inner)テーブルに制限を設けています。この制限では、テーブルemp(外側)を使用して必要な情報を選択します。 –
よろしくお願いします。それは多くの混乱を解消します。 – tp9