大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
/*关于在join中出现ORA-00918: 未明确定义列的解决办法*/
/*关于join和where表连接问题,需要在使用join时需要使用列的别名,避免相同列名的出现。*/
–以下为简要测试过程:
–测试对象如下:
SQL> select * from oraking1;
ID NAME
———- ——————–
1 oraking
2 oraking2
3 oraking3
SQL> select * from oraking2;
ID NAME
———- ——————–
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;
ID
———-
3
2
1
–使用where进行不存在相同列名时是成功的。如下:
SQL> select t.id from oraking1 s , (select id,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 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;
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
总结:在使用join时需要注意列不能重名。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185826.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...