概述
/*关于在join中出现ORA-00918: 未明确定义列的解决办法*/
/*关于join和where表连接问题,需要在使用join时需要使用列的别名,避免相同列名的出现。*/
--以下为简要测试过程:
--测试对象如下:
SQL> select * from oraking1;
SQL> select * from oraking1;
ID NAME
---------- --------------------
1 oraking
2 oraking2
3 oraking3
---------- --------------------
1 oraking
2 oraking2
3 oraking3
SQL> select * from oraking2;
ID NAME
---------- --------------------
3 yallonking3
2 yallonking2
1 yallonking1
---------- --------------------
3 yallonking3
2 yallonking2
1 yallonking1
--使用inner join进行不存在相同列名时是成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name from oraking2) t on s.id=t.id;
SQL> select t.id from oraking1 s inner join (select id,name from oraking2) t on s.id=t.id;
ID
----------
3
2
1
----------
3
2
1
--使用where进行不存在相同列名时是成功的。如下:
SQL> select t.id from oraking1 s , (select id,name from oraking2) t where s.id=t.id;
SQL> select t.id from oraking1 s , (select id,name from oraking2) t where s.id=t.id;
ID
----------
3
2
1
----------
3
2
1
--使用inner join进行存在相同列名(name)时是不成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id;
select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id
*
ERROR at line 1:
ORA-00918: 未明确定义列
SQL> select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id;
select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id
*
ERROR at line 1:
ORA-00918: 未明确定义列
--使用where进行存在相同列名(name)时是成功的。如下:
SQL> select t.id from oraking1 s , (select id,name,name from oraking2) t where s.id=t.id;
SQL> select t.id from oraking1 s , (select id,name,name from oraking2) t where s.id=t.id;
ID
----------
3
2
1
--使用inner join进行相同列名(name)重命名后是成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name,name as name1 from oraking2) t on s.id=t.id;
----------
3
2
1
--使用inner join进行相同列名(name)重命名后是成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name,name as name1 from oraking2) t on s.id=t.id;
ID
----------
3
2
1
----------
3
2
1
总结:在使用join时需要注意列不能重名。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26143577/viewspace-719702/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26143577/viewspace-719702/
最后
以上就是虚幻衬衫为你收集整理的关于在join中出现ORA-00918: 未明确定义列的解决办法的全部内容,希望文章能够帮你解决关于在join中出现ORA-00918: 未明确定义列的解决办法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复