LEFT JOIN ~ ON ~ 은 조건에 맞는 걸 고른 후에 LEFT 테이블에서 한 번도 안 쓰인 원소를 가져와서 RIGHT COLUMN은 NULL로 채우는 건데

LEFT JOIN ~ USING()은 동작 방식이 이해가 안 됩니다.




SELECT *

FROM

(

(

SELECT NAME, ANIMAL_TYPE

FROM ANIMAL_INS AS AI

LIMIT 37, 6

) A

LEFT JOIN

(

SELECT NAME, ANIMAL_TYPE

FROM ANIMAL_OUTS AS AO

LIMIT 37, 6

) B

ON A.NAME = B.NAME AND A.ANIMAL_TYPE = B.ANIMAL_TYPE

);


NAMEANIMAL_TYPENAMEANIMAL_TYPE
CeballoDogCeballoDog
SailorDogSailorDog
AprilDog
EllaCat
RosieDog
DashDog






SELECT *

FROM

(

(

SELECT NAME, ANIMAL_TYPE

FROM ANIMAL_INS AS AI

LIMIT 37, 6

) A

LEFT JOIN

(

SELECT NAME, ANIMAL_TYPE

FROM ANIMAL_OUTS AS AO

LIMIT 37, 6

) B

USING(NAME, ANIMAL_TYPE)

);

NAMEANIMAL_TYPE
CeballoDog
SailorDog
AprilDog
EllaCat
RosieDog
DashDog




여기서 이렇게 두 라인만 출력될 거라고 생각했습니다.


NAMEANIMAL_TYPE
CeballoDog
SailorDog



근데 왜 LEFT JOIN ON을 한 뒤에 RIGHT COLUMN을 버린 것 같은 결과가 나왔을까요?