關於在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
- 關於網站出現Errorestablishingadatabaseconnection的解決辦法網站ErrorRESTDatabase
- Spark SQL中出現 CROSS JOIN 問題解決SparkSQLROS
- IAR中出現the order of volatile accesses is undefined in this statement的解決辦法Undefined
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql
- 關於網路重置後無法聯網的解決辦法
- 關於npm install安裝報錯的解決辦法NPM
- 關於$ is not defined的原因和解決辦法
- Gson針對API返回欄位型別不確定的解決辦法API型別
- ROS 安裝過程中出現“hash校驗和不符”報錯解決辦法ROS
- web前端陣列塌陷的解決辦法Web前端陣列
- Linux中出現libc.so.6(GLIBC_2.14)(64bit) is needed by...的解決辦法Linux
- 關於SLG遊戲狼與羊群矛盾的解決辦法遊戲
- 關於Chrome報錯 ERR_NAME_NOT_RESOLVED 解決辦法Chrome
- 關於vm虛擬機器 不能上網的解決辦法虛擬機
- mysql事件關閉解決辦法MySql事件
- sbt卡住的解決辦法,sbt設定代理
- 在IDEA下使用JUnit出現的問題與解決辦法Idea
- thymeleaf關於js的一些坑(陣列定義)JS陣列
- IE 不支援 Promise 解決辦法 (或者 promise 未定義)的解決方法Promise
- MacOS系統無法連線5g wifi的解決辦法,你確定不來看看嗎?MacWiFi
- 關於Android檔案數過大,分包問題的解決辦法Android
- 關於網路賭博被黑不給出款的解決辦法?
- 關於python操作帶有中文檔名報錯的解決辦法Python
- git出現Permission denied的解決辦法Git
- 【Tensorflow_DL_Note17】CIFAR10程式碼使用過程中出現的錯誤及其解決辦法
- svn相關問題解決辦法
- 個人關於mac npm操作下無法在當前資料夾下成功安裝包的解決辦法MacNPM
- 關於Oracle 9i字符集問題的解決辦法FCOracle
- 關於MacBook Pro 15 usb連線iPhone反覆重連的解決辦法MaciPhone
- Linux 系統關機後電源無法關閉的解決辦法Linux
- LoadRunner中文出現亂碼的解決辦法
- stm出現Flash Timeout解決辦法
- UICollectionView設定行間距失效,解決辦法UIView
- PL2303在win10無法使用的解決辦法Win10
- 織夢繫統引數設定出現Token mismatch!提示的解決辦法
- 關於 unrecognized import path "golang.org/x/sys" 的另一個解決辦法ZedImportGolang
- 關於 SAP ABAP gateway OData 的一個詭異問題及解決辦法Gateway
- 關於 SAP Spartacus SSR 請求 OCC API 遇到 403 錯誤的解決辦法API