2013-08-21 101 views
2

我越來越想在我查詢以獲得一個特定的值時,下面的消息SQL查詢JOIN和WHERE

「指定的域可以是指多個表」

這是很清楚的我正在嘗試搜索多個表格中存在的內容,但如何正確執行此操作?

現在我有以下代碼:

SELECT Table1.CustomerId, Table1.Address, 
     Table2.CustomerId, Table2.Telephone, 
     Table3.CustomerId, Table3.Notes 
FROM (Table1 INNER JOIN Table2 ON Table1.CustomerId=TAble2.CustomerId) 
     INNER JOIN Table3 ON Table2.CustomerId=Table3.CustomerId 
WHERE CustomerId = 0015 

的最後一句話是問題...任何想法?

回答

6

錯誤消息非常明確,WHERE子句WHERE CustomerId = 0015中的字段CustomerId在兩個表中都顯示。你必須確定你想從哪個表中使用它; table1table2?例如:

SELECT Table1.CustomerId, Table1.Address, 
     Table2.CustomerId, Table2.Telephone, 
     Table3.CustomerId, Table3.Notes 
FROM (Table1 INNER JOIN Table2 ON Table1.CustomerId=TAble2.CustomerId) 
     INNER JOIN Table3 ON Table2.CustomerId=Table3.CustomerId 
WHERE table1.CustomerId = 0015 
5

您應該指向什麼表是從WHERE語句

SELECT Table1.CustomerId, Table1.Address, 
     Table2.CustomerId, Table2.Telephone, 
     Table3.CustomerId, Table3.Notes 
FROM (Table1 INNER JOIN Table2 ON Table1.CustomerId=TAble2.CustomerId) 
     INNER JOIN Table3 ON Table2.CustomerId=Table3.CustomerId 
WHERE Table1.CustomerId = 0015 
1

你需要從你需要客戶ID哪個表並初始化CustomerId

SELECT Table1.CustomerId, Table1.Address, 
     Table2.CustomerId, Table2.Telephone, 
     Table3.CustomerId, Table3.Notes 
FROM (Table1 INNER JOIN Table2 ON Table1.CustomerId=TAble2.CustomerId) 
     INNER JOIN Table3 ON Table2.CustomerId=Table3.CustomerId 
WHERE table1.CustomerId = 0015