2013-05-15 2 views
-2

SQL Server 2008 R2를 사용하고 있습니다. 내가 3 개 테이블 Drivers, RequestJourneySQL Server 2008 R2를 사용하는 쿼리에서 오류가 발생했습니다.

을 준수 할 수없는 테이블을 조인하지만 항상 오류

에게 여러 부분으로 식별자를 얻을 싶어요. 나는 driver_id 외래 키가 Journey입니다. 세 테이블 모두에 대한 세부 정보를 얻으려면이 테이블을 어떻게 가입시킬 수 있습니까 ?? SELECT 문에서 열을 참조 할 때 별칭이 사용되며, 사용되는 별칭은 SELECT 문의 FROM 절에서 아무 곳이나 정의되지 않은 경우

Select driver.driver_name 
from Drivers, 
    Journey 
where driver.id = journey.id 
    and driver.id=1; 
+6

쿼리를 표시해야합니다. - 조인 된 두 테이블에 나타나는 열이 소유 테이블 접두사 또는 별칭으로 명확하게 구분되었는지 확인하십시오. 'select table1.column ...' –

+0

당신의 테이블 이름은'drivers'이지만'driver'라는 이름의 앨리어스를 참조합니다. –

답변

0

이 오류는 일반적으로 발생합니다. 자세한 내용은

-1

here를 방문 드라이버 +의

Select Drivers.driver_name 
from Drivers, 
    Journey 
where Drivers.id = journey.id 
    and Drivers.id=1; 
0

당신은 만 세 테이블이 합류하는 것 - 올바른을?

할 수있는 적절한, ANSI SQL-92 표준을 준수하는 방법이 될 것이다 : 이것은 1992 년부터의 표준 ANSI을 (사용

SELECT 
    driver.driver_name 
FROM 
    Drivers 
INNER JOIN 
    Journey ON driver.id = journey.id 
WHERE 
    driver.id = 1; 

- 20 년 이상 지금!) JOININNER JOIN의 문법 (LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL JOIN 및 그 이상)을 쉼표로 구분하는 대신 FROM 절에있는 테이블 목록을 분리하십시오.

Aaron Bertrand의 훌륭한 블로그 게시물 Bad habits to kick : using old-style JOINs도 참조하십시오.

관련 문제