[SQL] 열고 주변의 가까운 브래킷 MS 액세스 SQL에서 조인 할 때
SQL열고 주변의 가까운 브래킷 MS 액세스 SQL에서 조인 할 때
나는 MS 액세스가 나는 유사한 쿼리를 생성하는 동일한 코드를 적용 할 수 있도록 쿼리에 대한 C ++를 사용하여 빌더 쿼리를 개발하고로 MS Access 쿼리에서 조인 나타내는 경우 열고 닫을 괄호시기를 이해하고자합니다.
SELECT
MasterTool.Name, Toolsets.SlaveToolID, Tools.MachineID
FROM
Tools AS MasterTool
LEFT JOIN
(
Toolsets LEFT JOIN Tools ON Toolsets.SlaveToolID = Tools.ID
)
ON MasterTool.ID = Toolsets.MasterToolID
편집하다:
@LeeMac은 explaination에 따라 나는이에 앞서 제시 한 쿼리를 수정하는 경우
SELECT Tools.Name, Toolsets.SlaveToolID, Tools.MachineID FROM (Tools
LEFT JOIN Toolsets ON Toolsets.SlaveToolID = Tools.ID )
LEFT JOIN Tools ON Toolsets.MasterToolID = Tools.ID
내가 오류가 지원되지 않는 표현을 가입 얻고 것은 위의 쿼리를 작성하는 어떤 간단한 방법이있다.
해결법
-
==============================
1.석사 Access 쿼리 참조 두 개 이상의 테이블, 모든 연속적인 테이블 한 쌍의 사이에 가입 할 때 기본적으로 괄호 내에 중첩되어야한다.
석사 Access 쿼리 참조 두 개 이상의 테이블, 모든 연속적인 테이블 한 쌍의 사이에 가입 할 때 기본적으로 괄호 내에 중첩되어야한다.
예를 들어, 두 개의 테이블이있는 질의는 괄호를 필요로하지 않는다 :
select * from a inner join b on a.id = b.id
일본어를 둘러싼 제 조인 테이블 필요로 괄호의 추가는 추가적인 가입 구별하기 위해 조인
select * from ( a inner join b on a.id = b.id ) inner join c on a.id = c.id
테이블의 모든 연속 또한 다음 기존의 원인이됩니다 것은 괄호의 또 다른 수준의 중첩되는 조인
select * from ( ( a inner join b on a.id = b.id ) inner join c on a.id = c.id ) inner join d on a.id = d.id
따라서, 일반적으로 :
select * from ( ( ( ( table1 [inner/left/right] join table2 on [conditions] ) [inner/left/right] join table3 on [conditions] ) [inner/left/right] join table4 on [conditions] ) ... ) [inner/left/right] join tableN on [conditions]
왼쪽 / 오른쪽이 중첩의 순서는, 예를 들어, 조인의 방향을 유지해야한다는 점에서 우려 연결하는 미묘함이있다 :
select * from ( c left join b on c.id = b.id ) left join a on a.id = b.id
에 순열 될 수 있습니다 :
select * from c left join ( b left join a on b.id = a.id ) on c.id = b.id
from https://stackoverflow.com/questions/53582984/when-to-open-and-close-brackets-surrounding-joins-in-ms-access-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 외래 키 제약 조건과 충돌 테이블 변경 문 (0) | 2020.06.17 |
---|---|
[SQL] 어떻게 널 값에 대한 이전 값을 얻을 수 있습니다 (0) | 2020.06.17 |
[SQL] 어떻게 데이터에 대한 상호 참조 테이블 / 쿼리를 만들려면 어떻게해야합니까? (0) | 2020.06.17 |
[SQL] 자바 SQL : Statement.hasResultSet ()? (0) | 2020.06.17 |
[SQL] SQL Server 2008의 쉼표에 의해 분할 기능 (0) | 2020.06.17 |