簡體   English   中英

Oracle左外連接查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM