2013-11-04 3 views
3

데이터베이스에 여러 개의 조회 테이블 (UI 양식에 풀다운 메뉴로 표시)이 포함되어 있습니다. 예를 들어 액세스에 참여하려고 할 때 구문 오류가 발생했습니다.

,

customer_data - 고객 인구 통계 학적 정보.

lookup_car - 상점 차 설명 (핀토, 베가, 릴 라이언트 로빈, 머스탱, 코르벳 함)

junction_car_customer은 - 하나 개 이상의 자동차

고객 제레미 클락슨 (CUST_ID에 고객을 참여 : 1)는 3 대의 자동차를 소유하고 있습니다. 그의 기록에 대한 드롭 다운을 보여줍니다

Pinto (car_id=100) 
Reliant Robin (car_id=101) 
Vega (car_id=102) 

junction_car_customer 데이터는 다음과 같습니다

cust_id car_id 
1   100 
1   101 
1   102 

나는 고객 이름을 표시하는 행을 반환하기 위해 노력하고있어 및 모델 소유.

SELECT 
cd.cust_id, 
cd.name_first, 
cd.name_last, 
jcc.car_id, 
lc.car_desc 
FROM 
customer_data AS cd 
LEFT JOIN ju_cust_car AS jcc ON jcc.cust_id = cd.cust_id 
LEFT JOIN lookup_cars AS lc ON lc.car_id = jcc.car_id 

ORDER BY 
cd.name_last 

내가 갖는 : 여기

내 쿼리

구문 오류 좌 액정 ON AS lookup_cars 가입 jcc.cust_id = cd.cust_id 쿼리 식 (누락 된 연산자) ' lc.car_id = jcc.car_id '

이 오류의 원인은 무엇입니까?

+0

@Deepshikha : 위 쿼리는 괜찮아 보이지만 Access에서는 작동하지 않습니다. – Andomar

답변

1

액세스에는 둘 이상의 조인을 위해 괄호가 필요합니다. 예 :

select * 
from ((Table1 as t1) 
left join Table2 as t2 on t1.id = t2.id) 
left join Table3 as t3 on t1.id = t3.id 
+0

그래서 첫 번째 쿼리 만 조인하거나 더 조인 된 테이블로 이러한 괄호를 계단식으로 캐스케이드해야합니까? –

+1

더 많은 조인으로 캐스케이드됩니다. 세 가지 조인의 경우 세 쌍의 괄호가 필요합니다. – Andomar

1

LEFT/RIGHT JOIN 및 괄호에 대한 액세스가 다소 까다 롭습니다. 시도해보십시오

SELECT 
    cd.cust_id, 
    cd.name_first, 
    cd.name_last, 
    jcc.car_id, 
    lc.car_desc 
FROM 
    (
     customer_data AS cd 
     LEFT JOIN 
     ju_cust_car AS jcc 
      ON jcc.cust_id = cd.cust_id 
    ) 
    LEFT JOIN lookup_cars AS lc 
     ON lc.car_id = jcc.car_id 
ORDER BY 
cd.name_last 
관련 문제