作者wadd (醜男轉世-低調)
看板Database
標題[SQL ] inner join 3 table using 問題
時間Fri Jan 2 16:14:59 2015
資料庫名稱:Mysql
內容/問題描述:
我有三個 table
pj pj_ass us_
-------- -------- --------
pid pj_assid
uid
name
pid name
uid
name
以下的語法可以執行
select pj.name, pj_ass.name, us_.name
from pj_ass
Inner join pj on pj.pid = pj_ass.pid
Inner join us_ on pj_ass.uid = us_.uid
以下的語法會出現錯誤:Column 'uid' in from clause is ambigous
select pj.name, pj_ass.name, us_.name
from pj_ass
Inner join pj using(pid)
Inner join us_ using(uid)
但以下的語法是正常的:
select pj.name, pj_ass.name, us_.name
from pj_ass
Inner join pj using(pid)
Inner join us_ on pj_ass.uid = us_.uid
已經找了很多解法,雖然可解,但想了解為什麼後面的語法不能呢?
麻煩各位先進提點一下,非常感謝。
--
早睡早起身體好,事事順心沒煩惱,電腦若是修得好,好人絕對當到老。
辜狗若是用的好,正妹一定會來找,一旦問題解決了,只會說聲你真好。
資工好人真正慘,電腦永遠修不完,整夜工作有夠幹,明早還得送去還。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.118.253
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1420186502.A.994.html
推 BigLoser: us_.uid 01/02 18:01
→ BigLoser: try it 01/02 18:01
→ BigLoser: 阿,你解決了阿..不行的原因就是他給你抱錯的那個訊息 01/02 18:02
→ BigLoser: 沒碰過mysql,不過重點在於,因為有多個table 01/02 18:03
→ BigLoser: 裡面有相同的column name,所以會ambigous 01/02 18:04
→ wadd: 但我如果把三個table 的 name 改不同名稱,還是同樣錯誤訊息 01/02 18:11
推 NioTW: 問題不在table名稱,在多個table都有相同欄位名稱,要清楚 01/09 23:44
→ NioTW: 指出是哪個表 01/09 23:44