나는 명시만큼LEFT (외부) 조인을 사용하는 경우 조인의 테이블 순서가 중요합니까?
SELECT ....
FROM oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas,
apples
WHERE ....
또는
SELECT ....
FROM bananas,
apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id
WHERE ....
처럼
SELECT ....
FROM apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas
WHERE ....
이 절의 FROM 다른 순열 정확히 동일합니다 SQL 쿼리를 확인하고 싶습니다 오렌지와 키위 사이의 LEFT JOIN은 그대로 유지됩니다. 다양한 문서에서 읽은 것부터 반환 된 집합은 정확히 같아야합니다.
저는 실제로 쿼리의 결과에만 관심이 있습니다. 실제 데이터베이스에서는 성능이 떨어졌습니다. (나는 AFAIK가 조인 순서에 관한 옵티 마이저 힌트를 지원하지 않고 최적의 쿼리 계획을 자동으로 생성하려고 시도하는 PostgreSQL 8.3을 사용하고 있습니다.)
테스트 해 보셨습니까? 'JOIN'의 순서는 이전의'JOIN'의 구체적인 결과가 필요하지 않는 한 무의미합니다 – Matthew
바나나, 사과, 오렌지는 데카르트 제품입니까? 또는 "join-in-WHERE"절? – gbn
EXPLAIN은 여러분에게 다음과 같이 보여줄 것입니다 : http://www.postgresql.org/docs/current/static/sql-explain.html 그리고 아무런 힌트도 없습니다. PostgreSQL은 꽤 영리합니다. –