2013-04-24 1 views
1

액세스 할 때 여러 테이블을 조인해야합니다. 이 조인에 관해서 액세스는 몇 가지 이상한 문법을 ​​가지고, 나는 특히ms 액세스 - 세 번째 테이블에서 복잡한 조인 조건이있는 3 테이블 조인

는, C는 I가 발생하고 과거를 입수했습니다

select a.*, B.*, c.* 
    from 
    (tblOne as A 
    Left join tblTwo as B on A.ParentId = B.Id) 
    left join tblThree as C on C.ParentId = B.Id and C.ShoeSize = A.ShoeSize 

모두에서 필드와 B를 고려할 필요가이 권리를 얻을 수가 캔트 두 개 이상의 테이블이 관련되어있을 때 각각의 Parens를 처리합니다. 다른 테이블 중 하나만 참조하려는 경우 C에 가입 할 수 있습니다. 이 유형의 것은 SQL Server에서 상당히 간단합니다. 도움이된다면, Google에서 답을 찾을 수없는 것 같습니다.

클라이언트는 현재 ms Access 2003을 사용하고 있습니다. 문제가 새로운 버전으로 해결 될 수 있다면 업그레이드로 이야기 할 수 있습니다.

감사

그렉

답변

0

난 그냥 액세스 2010 년에 다음과 같은 노력하고 내가 어떻게 이것으로 내 마음 속에 명확한 그림이없는 것을 인정해야하지만 그 는 일을 보인다 "현실 세계"에서 사용될 수 있습니다 ...

SELECT ab.*, c.* 
FROM 
(
    SELECT a.ID AS ID1, a.ShoeSize AS ShoeSize1, b.ID AS ID2 
    FROM tblOne a LEFT JOIN tblTwo b 
     ON a.ParentId = b.Id 
) ab LEFT JOIN tblThree c 
    ON c.ParentId = ab.ID2 and c.ShoeSize = ab.ShoeSize1 
+0

세 번째 테이블은 실제로 집계 테이블입니다. Im 바깥 쪽을 두 번 째 테이블에 여러 번 연결하고 탤리 테이블을 컨트롤로 사용해야합니다. 이 모든 것이 문제를 진흙 투성이로 보였기 때문에 단순화되었습니다 ... 2010 년 사본을 찾아 보겠습니다. – greg

+0

@greg 알았어, 명확히 해줘서 고마워. 필자는 Access 2000에서 내 쿼리를 테스트했는데 Access 2003에서는 작동하지 않는 이유를 알지 못합니다. 그러나 클라이언트를 새로운 (또는 지원되는) ....)) –

+0

내 로컬 컴퓨터에서 2010을 다운로드했는데이 제한이 사라진 것 같습니다. – greg