作者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://webptt.com/cn.aspx?n=bbs/Database/M.1420186502.A.994.html
1F:推 BigLoser: us_.uid 01/02 18:01
2F:→ BigLoser: try it 01/02 18:01
3F:→ BigLoser: 阿,你解决了阿..不行的原因就是他给你抱错的那个讯息 01/02 18:02
4F:→ BigLoser: 没碰过mysql,不过重点在於,因为有多个table 01/02 18:03
5F:→ BigLoser: 里面有相同的column name,所以会ambigous 01/02 18:04
6F:→ wadd: 但我如果把三个table 的 name 改不同名称,还是同样错误讯息 01/02 18:11
7F:推 NioTW: 问题不在table名称,在多个table都有相同栏位名称,要清楚 01/09 23:44
8F:→ NioTW: 指出是哪个表 01/09 23:44