1
이 스키마가 있다고 가정 해 봅시다.내부 조인의 연관성과 commutativity SQL
Boats
_____
bid
bname
Reserves
________
sid
bid
date
Sailors
_______
sid
sname
내측 조인은 연관성과 교환 성이 있어야한다는 것을 알고 있습니다. 그러나 나는 왜 그런지 이해할 수 없습니다.
SELECT sname, bname
FROM (Sailors NATURAL INNER JOIN Reserves) NATURAL INNER JOIN Boats
는 선원과 이름의 이름을 반환해야하지만,
SELECT sname, bname
FROM (Sailors NATURAL INNER JOIN Boats) NATURAL INNER JOIN Reserves
나는 선원와 보트 공통 필드가 없기 때문에이 null
반환해야 함을 생각하고 :
쿼리를 감안할 때 그들이 예약 한 보트들.
내측 조인이 교환 가능하고 연관성이 있어야하는 이유를 말해주십시오.
감사합니다.
하는 순서의 변화 또는 그룹화 내부는 쿼리의 속도에 영향을 미칠 것 조인에서? – user3903214
나도 몰라,하지만 속도가 다를 거라고 생각하지. 나는 쿼리 플래너가 두 쿼리 모두에 대해 동일한 실행 계획을 선택하기를 기대합니다. 임의의 (ish) 데이터를 테이블에 채우고 [EXPLAIN] (http://www.postgresql.org/docs/current/static/sql-explain.html)을 사용하여 테스트 할 수 있습니다. –
@ user3903214하지만 다른 그룹의 조합에 해당하는 그룹을 선택하고 그룹화하는 경우 결합의 조합 만이 아니라 해당 연산자의 조합이 어떻게 작동하는지가 중요합니다. – philipxy