如果我想編寫一個查詢用一個簡單的加盟,我可以這樣做:不明確的列名 - 是不是?
select * from customer c
join order o
on c.customerid = o.customerid
where c.customerid = 100
,這一切工作正常。在這個查詢中,是否有一個原因,我必須指定一個表別名 - 即。 c.customerid
?爲什麼我不能寫這個:
select * from customer c
join order o
on c.customerid = o.customerid
where customerid = 100
我得到錯誤Ambiguous column name 'customerid'
。在這種情況下,如果WHERE子句中只有一列,並且它是我要加入的列,那麼這實際上是「模棱兩可」?還是隻是遵守ANSI標準(我在這裏猜測 - 我不知道它是否符合)並鼓勵良好的編碼規範?
不錯,這是比我想到的更好的例子。 –
@馬丁史密斯 - 感謝a)回答這個問題和b)提供一個有趣的例子 –