[프로그래머스] SQL 고득점 Kit : JOIN

?에서 !로·2021년 8월 16일
0

코딩테스트

목록 보기
5/6

JOIN [링크]

없어진 기록 찾기

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID=I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID;

🔎 LEFT JOIN : 기준 테이블(FROM절) 전체와 JOIN한 테이블들의 KEY 값이 같은 결과를 리턴

있었는데요 없었습니다

SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I, ANIMAL_OUTS O
WHERE 
I.ANIMAL_ID = O.ANIMAL_ID
AND
I.DATETIME > O.DATETIME
ORDER BY I.DATETIME;

오랜 기간 보호한 동물(1)

SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS I
LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.DATETIME IS NULL
ORDER BY I.DATETIME
LIMIT 3;

보호소에서 중성화한 동물

SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS I, ANIMAL_OUTS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
AND
I.SEX_UPON_INTAKE LIKE '%Intact%'
AND
O.SEX_UPON_OUTCOME REGEXP 'Spaye|Neutered'
ORDER BY I.ANIMAL_ID

🔎 LIKE 절은 한 구문으로 여러 개의 조건을 걸 수 없습니다. 그래서, REGEXP 절을 사용하여 정규표현식으로 2개 이상의 다양한 조건을 걸 수 있습니다.

  • 아래와 같은 형식으로 사용해도 됩니다.
WHERE REGEXP_LIKE (O.SEX_UPON_OUTCOME REGEXP, 'Spaye|Neutered')

0개의 댓글