mysql内联视图语句_求SQL高手解答:sql内联视图子查询中的where条件中无法引用最外层查询结果数据?...

今天在写SQL时遇到一个问题,即sql内联视图子查询中的where条件中无法引用最外层查询结果数据。简化的sql语句如下:selectst.rowguid,(selectcount(*)from(selectt.idfromrats.ttspl0...

今天在写SQL时遇到一个问题,即sql内联视图子查询中的where条件中无法引用最外层查询结果数据。简化的sql语句如下:

select st.rowguid,

(

select count(*) from

(

select t.id from rats.ttspl02 t

where t.from_st_guid=st.rowguid //此处oracle报错

group by t.id

having count(t.id)>1

)

) as num

from rats.ttsbs01 st

运行SQL后,oracle在第6行【 where t.from_st_guid=st.rowguid】报ORA-00904:'ST'.'ROWGUID'标示符无效。

难道在子查询【select count(*) from……】中嵌套的内联视图子查询【select t.id from rats.ttspl02 t where……】中无法引用到最外层的查询结果数据【st.rowguid】?

还请高手指教!

我觉得不全是这样。

目前是3层查询,如果改成2层查询,那么子查询过程中就可以引用到父查询结果。比如SQL:

select st.rowguid,

(

select t.id from rats.ttspl02 t

where t.from_st_guid=st.rowguid //此处可以应用到父查询数据“st.rowguid”

group by t.id

having count(t.id)>1

) as num

from rats.ttsbs01 st

所以我还是怀疑可能跟嵌套太多有关。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值