這是SQL Server顯然正確的語法:如何在SQL select語句中使用逗號分隔表的列表時如何執行連接?
SELECT a.id, b.name
FROM Table1 a, Table2 b
WHERE a.id = b.fk1
所以是這樣的:
SELECT a.id, c.status
FROM Table1 a
JOIN Table3 c ON a.id = c.fk2
但是,這顯然不是:
SELECT a.id, b.name, c.status
FROM Table1 a, Table2 b
JOIN Table3 c ON a.id = c.fk2
WHERE a.id = b.fk1
通常我不會想構建第三種情況下的查詢(實際上不是第一種情況),但它可能是編輯已寫入代碼的最小阻力路徑我的公司。有人用第一種形式使用五個不同的表格,我真的需要通過JOIN語句在第六個表格中工作,而不會冒着弄亂他們已有的東西的機會。儘管如果我需要,我可以徹底重新編寫他們的東西,但我真的很想知道如何在第三種情況下做類似的事情。
運行代碼完全一樣,在例子中,第三種情況使我這個錯誤消息:
The multi-part identifier "a.id" could not be bound.
什麼是語法上打破了第三種情況?可以應用什麼簡單的修復?謝謝!
阻力最小的路徑不一定是最好的路徑。 – 2013-04-25 16:10:33