자두의 데브로그

[MySQL] SQL 문제 풀이 - JOIN (1) 본문

코딩테스트/SQL

[MySQL] SQL 문제 풀이 - JOIN (1)

왕자두 2024. 8. 5. 00:15

조건에 맞는 도서와 저자 리스트 출력하기

-- 코드를 입력하세요
SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, "%Y-%m-%d") AS PUBLISHED_DATE FROM BOOK b JOIN AUTHOR a ON b.AUTHOR_ID = a.AUTHOR_ID WHERE CATEGORY = "경제" ORDER BY PUBLISHED_DATE;

 

없어진 기록 찾기

-- 코드를 입력하세요
SELECT o.ANIMAL_ID, o.NAME FROM ANIMAL_INS i RIGHT JOIN ANIMAL_OUTS o ON i.ANIMAL_ID = o.ANIMAL_ID WHERE i.ANIMAL_ID is NULL;

 

[새롭게 알게 된 것]

  • JOIN을 했을 때 RIGHT JOIN이라고 하면 오른쪽에 속한 테이블의 값은 다 가져오지만 만약 오른쪽 테이블에는 있지만 왼쪽 테이블에는 없는 값이 들어온다면 이는 NULL 값으로 결과에 뜨게 된다. 따라서 is NULL 인 경우를 걸러내면 된다.

 

있었는데요 없었습니다

-- 코드를 입력하세요
SELECT i.ANIMAL_ID, i.NAME FROM ANIMAL_INS i JOIN ANIMAL_OUTS o ON i.ANIMAL_ID = o.ANIMAL_ID WHERE i.DATETIME > o.DATETIME ORDER BY i.DATETIME;

 

[새롭게 알게 된 것]

  • 날짜 비교를 할 때 날짜가 더 앞서는(빠른) 경우가 더 적은 경우이다.
  • i.DATETIME > o.DATETIME 중 o.DATETIME가 더 이전 날짜