프로그래머스 LV 3. 59042 없어진 기록 찾기 MySQL

 

https://school.programmers.co.kr/learn/courses/30/lessons/59042

SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (
    SELECT ANIMAL_ID
    FROM ANIMAL_INS
)

 

 

현재의 문제가 분류되어 있는 범위가 JOIN 이라고 나와있는 문제 영역에서 나왔지만, 

이런식으로 해결해도 문제가 없을 것이라 생각되어서 위와 같이 작성하여서 제출하고 통과하였다. 

꽤나 간략한 형태라고 생각해서 위처럼 작성해는데, 

JOIN 영역에 있는 문제이니까 JOIN을 사용한 형태로 다시 작성해보면, 

 

SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT OUTER JOIN ANIMAL_INS AS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID is NULL
ORDER BY OUTS.ANIMAL_ID

 

이때에 LEFT OUTER JOIN 에 대한 정보에 대한 이미지를 첨부하면, 

위와 같다. 

결국 이렇게 LEFT OUTER JOIN 을 통해서 LEFT에 있는걸 전부 가져오는데, 거기서 JOIN이 되어있는 RIGHT에 있는 것들에 WHERE 을 통해서 필터링을 통해서 골라서 가져올 수 있게 만드는 형태로 위와 같이 LEFT OUTER JOIN 형태의 코드를 사용해서 문제를 해결할 수 있다. 

 

그런데 그냥 이 문제에 있어서는 내가 작성한 형태로 하는것이 더 편하지 않을까 싶다. 

 

  Comments,     Trackbacks