關於在join中出現ORA-00918: 未明確定義列的解決辦法
/*關於在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL未明確定義列錯誤SQL
- 關於ActiveMQ在MyEclipse中出現無法讀取schema文件的問題解決方法MQEclipse
- Spark SQL中出現 CROSS JOIN 問題解決SparkSQLROS
- IAR中出現the order of volatile accesses is undefined in this statement的解決辦法Undefined
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql
- 關於網站出現Errorestablishingadatabaseconnection的解決辦法網站ErrorRESTDatabase
- 關於IIS安裝後出現500錯誤的解決辦法
- 關於ssh登陸很慢的解決辦法【轉】
- MySQL複製過程中出現的從庫無法連線主庫的解決辦法MySql
- 關於網路重置後無法聯網的解決辦法
- 關於dbconsole無法啟動的解決辦法
- 關於SLG遊戲狼與羊群矛盾的解決辦法遊戲
- 關於$ is not defined的原因和解決辦法
- 關於ASP.NET在IIS上的一些問題的解決辦法ASP.NET
- 搭建ORACLE 10g RAC過程中出現 OUI-25031 的解決辦法Oracle 10gUI
- Gson針對API返回欄位型別不確定的解決辦法API型別
- web前端陣列塌陷的解決辦法Web前端陣列
- ROS 安裝過程中出現“hash校驗和不符”報錯解決辦法ROS
- 關於npm install安裝報錯的解決辦法NPM
- Inet控制元件中上載的路徑、檔名中出現空格的解決辦法 (轉)控制元件
- 關於無法建立aps.web專案的解決辦法 (轉)Web
- [Robotium]關於robotium在不同解析度下clickonview不支援得解決辦法View
- mysql事件關閉解決辦法MySql事件
- 關於vm虛擬機器 不能上網的解決辦法虛擬機
- 關於master..xp_cmdshell’的幾個錯誤解決辦法AST
- 關於Win7系統,縮圖無法顯示的解決辦法Win7
- sbt卡住的解決辦法,sbt設定代理
- 關於在TreeSet中新增自定義類 報ClassCastException的解決方法ASTException
- IE 不支援 Promise 解決辦法 (或者 promise 未定義)的解決方法Promise
- 關於Chrome報錯 ERR_NAME_NOT_RESOLVED 解決辦法Chrome
- Live mesh 在xp無法安裝的解決辦法
- thymeleaf關於js的一些坑(陣列定義)JS陣列
- 關於網路賭博被黑不給出款的解決辦法?
- 關於UEditor遠端圖片上傳失敗的解決辦法
- MacOS系統無法連線5g wifi的解決辦法,你確定不來看看嗎?MacWiFi
- git出現Permission denied的解決辦法Git
- scp出現錯誤的解決辦法
- svn相關問題解決辦法