2013-08-21 2 views
2

내 쿼리에서 특정 값을 얻기 위해 노력하고 다음과 같은 메시지가 무엇입니까 WHERESQL 쿼리 가입 및

"지정된 필드가 둘 이상의 테이블을 참조 할 수"그것은 꽤 분명하다 하나 이상의 테이블에있는 항목을 검색하려고하지만이 작업을 수행하는 방법은 무엇입니까?

지금 나는 다음과 같은 코드가 있습니다 :

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 절의 CustomerId 필드는 WHERE CustomerId = 0015이며 두 테이블 모두에 표시됩니다. 어떤 테이블에서 사용할지 결정해야합니다. table1 또는 table2? 예를 들면 :

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 문 당신이 고객 ID를 필요로하는 테이블에서 초기화하기 위해 필요

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

에서에서 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