在oracle中加入表和子查询
我不明白这个查询有什么问题。它给我一个编译时错误“命令未正确结束”。在oracle中加入表和子查询
内部查询给我四条记录。
select WGN3EVENTPARTICIPANT.EVENTUID
from
(Select WGN_V_ADDRESS_1.ADDRESSUID1 as add1,
WGN_V_ADDRESS_1.ADDRESSUID2 as add2
from WGN3USER inner join
WGN_V_ADDRESS_1 on WGN_V_ADDRESS_1.USERID=wgn3user.USERID
where WGN3USER.USERNAME='FIRMWIDE\khuraj'
) as ta
,WGN3EVENTPARTICIPANT
where (ta.ADDRESSUID1=WGN3EVENTPARTICIPANT.ADDRESSUID1) AND
(ta.ADDRESSUID2=WGN3EVENTPARTICIPANT.ADDRESSUID2)
我在Oracle中运行它。
你应该改变where子句中使用的字段别名:
where (ta.add1=WGN3EVENTPARTICIPANT.ADDRESSUID1) AND
(ta.add2=WGN3EVENTPARTICIPANT.ADDRESSUID2)
EDITED
尝试删除表的别名as
保留字:
) as ta ->) ta
'\' 是需要转义的转义字符:
变化'FIRMWIDE\khuraj'
在'FIRMWIDE\\khuraj'
和外WHERE子句引用了错误的别名:中ta.ADDRESSUID1
代替ta.add1
和ta.ADDRESSUID2
,而不是ta.add2
但OP说,子查询运行正常......? – danihp
正如其他人所指出的,你原来的代码示例包含了几个错误。但是,导致您报告的具体错误(ORA-00933)的是这样的。
在Oracle中AS
仅用于列别名。所以,你需要你的别名内嵌视图这样的:
... where WGN3USER.USERNAME='FIRMWIDE\khuraj'
) ta
+1用于指出确切的来源或错误。 –
select WGN3EVENTPARTICIPANT.EVENTUID
from
(Select WGN_V_ADDRESS_1.ADDRESSUID1 as add1,
WGN_V_ADDRESS_1.ADDRESSUID2 as add2
from WGN3USER inner join
WGN_V_ADDRESS_1 on WGN_V_ADDRESS_1.USERID=wgn3user.USERID
where WGN3USER.USERNAME='FIRMWIDE\khuraj'
) as ta
left outer join WGN3EVENTPARTICIPANT on
ta.ADDRESSUID1=WGN3EVENTPARTICIPANT.ADDRESSUID1 AND
ta.ADDRESSUID2=WGN3EVENTPARTICIPANT.ADDRESSUID2
不工作同样的错误... – Amandeep