[英]Oracle left outer join query
select a,last_note_user,c,d,iso_src
from X,Y,Z
left outer join W
ON (W.last_note_user=Z.userid AND W.user_ten=Y.iso_src)
當我執行上面的查詢時,它給出了錯誤"Y.iso_src" is a invalid identifier
但是, Y.iso_src
是一個有效的標識符,它存在於系統表中。 上面的左外連接有問題嗎? 請幫幫我!!!
您不能以這種方式在Oracle
混合使用JOIN
語法。
JOIN
條件只能引用先前使用ANSI JOIN
語法連接的表。
用這個:
SELECT a, last_note_user, c, d, iso_src
FROM X
CROSS JOIN
Y
CROSS JOIN
Z
LEFT OUTER JOIN
W
ON W.last_note_user = Z.userid
AND W.user_ten = Y.iso_src
如其他響應所示,不混合ANSI和非ANSI連接語法可能是一個好習慣。 但是,通過將非ANSI連接隔離到子查詢中,技術上是可行的:
create table X as (select dummy a, dummy c, dummy d from dual);
create table Y as (select dummy iso_src from dual);
create table Z as (select dummy userid from dual);
create table W as (select dummy last_note_user, dummy user_ten from dual);
select a,last_note_user,c,d,iso_src
from (select a, c, d, iso_src, userid FROM X,Y,Z) xyz
left outer join W
ON (W.last_note_user=xyz.userid AND W.user_ten=xyz.iso_src);
A LAST_NOTE_USER C D ISO_SRC
- -------------- - - -------
X X X X X
1 rows selected
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.