IN으로 집합에 포함되는지 확인.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty');

조인 후 두개의 조건을 걸어서 푼 방법

SELECT O.ANIMAL_ID, O.ANIMAL_TYPE, O.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 ='Spayed Female' OR O.SEX_UPON_OUTCOME='Neutered Male');

 

 

 

LEFT 조인 사용

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

 

이중 질의 사용

SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) ORDER BY DATETIME ASC LIMIT 3;

 

시작일이 빠르다라는게 헷갈렸다.. 빠르면 과거.. 이른 날짜

 

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 ASC;

이중 쿼리로 푸는 방법

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

 

LEFT 조인으로 푸는 방법

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;

 

RIGHT 조인으로 풀기

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON (O.ANIMAL_ID = I.ANIMAL_ID) WHERE I.ANIMAL_ID IS NULL;

 

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID;

 

IFNULL을 아는지 확인하는 문제 My sql에서 사용된다.

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL;

 

IS NOT NULL을 쓸 줄 아는지 묻는 문제.

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL;

 

IS NULL을 쓸 수 있는지 묻는 문제.

'SQL' 카테고리의 다른 글

[Programmers]NULL 처리하기  (0) 2019.10.14
[Programmers]이름이 있는 동물의 아이디  (0) 2019.10.14
[Programmers]입양 시각 구하기(2)  (0) 2019.10.14
[Programmers] 입양 시각 구하기(1)  (0) 2019.10.14
SQL DISTINCT와 GROUP BY  (0) 2019.10.14

+ Recent posts