반응형
SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_OUTS AS A
LEFT JOIN ANIMAL_INS AS B
ON A.ANIMAL_ID = B.ANIMAL_ID # 합칠 때 기준이 되는 attribute
WHERE B.ANIMAL_ID IS NULL
ORDER BY B.ANIMAL_ID
LEFT JOIN이나 LEFT OUTER JOIN이나 같은 결과값을 출력한다. LEFT JOIN 이전에 선언한 테이블을 중심으로 이후에 선언한 테이블을 합친다고 생각하면 된다. 즉 위에선 ANIMAL_OUTS 테이블이 중심이 되어 해당 테이블에 있는 모든 데이터들은 결과에 표시된다. 만약 ANIMAL_OUTS에는 있는데 합쳐지는 ANIMAL_INS 테이블에 없는 데이터는 NULL 값으로 표시된다.
따라서 이 NULL 값을 찾는 것이 WHERE 절이고, 이때 ANIMAL_OUTS의 ANIMAL_ID와 NAME을 구하면 되므로 SELECT 절에는 alias A를 attribute 명 앞에 붙여주면 된다.
728x90
반응형
'문돌이 존버 > DB 및 SQL 스터디' 카테고리의 다른 글
(프로그래머스 SQL 문제 풀이) 루시와 엘라 찾기, 이름에 el이 들어가는 동물 찾기, 중성화 여부 파악하기, 오랜 기간 보호한 동물(2), DATETIME에서 DATE로 형 변환 (0) | 2021.05.18 |
---|---|
(프로그래머스 SQL 문제 풀이) 있었는데요 없었습니다 (0) | 2021.05.18 |
(프로그래머스 SQL 문제 풀이) 이름이 없는/있는 동물의 아이디, NULL 처리하기 (0) | 2021.05.16 |
(프로그래머스 SQL 문제 풀이) 입양 시각 구하기(1), (2) (0) | 2021.05.16 |
(프로그래머스 SQL 문제 풀이) 고양이와 개는 몇 마리 있을까, 동명 동물 수 찾기 (0) | 2021.05.16 |