2013-08-21 102 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