Oracle JOIN USING子查询:ora-00904字符串:无效的标识符

Oracle JOIN USING子查询:ora-00904字符串:无效的标识符,第1张

概述我的查询中有一点语法问题(简化): select *from table1 t1inner join table2 t2 using (pk1)inner join table3 t3 using (pk2)where not exists (select1 from table4 t4 where t4.pk1 = t1.pk1) 通过使用“using”关键字,oracle不允许在列名前 我的查询中有一点语法问题(简化):

select *from table1 t1inner join table2 t2 using (pk1)inner join table3 t3 using (pk2)where not exists (select1 from table4 t4 where t4.pk1 = t1.pk1)

通过使用“using”关键字,oracle不允许在列名前面使用表标识符(例如:t1.pk1,只能使用pk1)

如果我写:

select *from table1 t1inner join table2 t2 using (pk1)inner join table3 t3 using (pk2)where not exists (select1 from table4 t4 where t4.pk1 = pk1)

此查询不会给出预期的结果.

但由于我使用的是“存在”子查询,我如何加入此子查询?

当然,我想我可以用另一种方式编写这个查询并避免存在,或者我不能使用“使用”.

但是,是否可以在where子句中将“join / using”与子查询结合使用?

编辑:使用Oracle 10gR2

解决方法 有趣的问题!我仍然使用USING时可以管理的最好的是:

select * from( select *  from table1 t1  inner join table2 t2 using (pk1)  inner join table3 t3 using (pk2)) vwhere not exists (select1 from table4 t4 where t4.pk1 = v.pk1)
总结

以上是内存溢出为你收集整理的Oracle JOIN USING子查询:ora-00904字符串无效的标识符全部内容,希望文章能够帮你解决Oracle JOIN USING子查询:ora-00904字符串:无效的标识符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存