“… where…”와“join… on…”을 사용한 SpatialJoin의 차이점


9

이 두 공간 조인의 차이가 어디에 있는지, 그리고 차이가 있다면, 언제 사용해야하는지 궁금합니다.

SELECT *
FROM points p, shapes s
WHERE ST_Within(p.geom, s.geom);

SELECT *
FROM points p
INNER JOIN shapes s ON ST_Within(p.geom, s.geom)

특정 상황에서 더 빠릅니까?


1
차이점은 문체 적이지만 작업이 12 개에서 15 개의 테이블을 조인하는 경우 확장 된 SQL 코더가 JOIN독점적으로 사용 되는 이유를 알 수 있습니다 . 불행히도, 작성된 바와 같이, 이것은 순수한 SQL 질문에 불과 하며 의견은 미끼입니다.
Vince

답변:


4

두 진술에 대한 차이점은 없습니다. Postgresql은이 둘을 동일한 쿼리 계획으로 변환합니다. EXPLAIN ANALYZE선택하기 전에 추가 하여 계획을 볼 수 있으며 결과를 찾습니다.


하나는 다른 것보다 더 빠른 것으로 간주됩니까?
Stophface

아니야. Postgresql은이 둘을 동일한 쿼리 계획으로 변환합니다. EXPLAIN ANALYZE선택하기 전에 추가 하여 계획을 볼 수 있으며 결과를 찾습니다.
로마 Tkachuk

6
WHERE에서 혼합 할 때 조건을 잊어 버리기 쉽기 때문에 JOIN을 선호합니다. 또한 JOIN 방식을 사용하면 LEFT를 사용하여 모양에없는 점을 찾을 수 있습니다. WHERE
LR1234567
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.