
출처 https://chlgpdus921.github.io/basecamp/MySQL-JOIN/
https://school.programmers.co.kr/learn/courses/30/lessons/144854
SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM AUTHOR A, BOOK B
WHERE B.CATEGORY = '경제' AND A.AUTHOR_ID = B.AUTHOR_ID
ORDER BY PUBLISHED_DATE
교집합에 대해 찾는 구문으로 inner join으로 해결해줌.
SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM BOOK B JOIN AUTHOR A
ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY PUBLISHED_DATE
https://school.programmers.co.kr/learn/courses/30/lessons/59042
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.NAME IS NULL AND O.NAME IS NOT NULL
ORDER BY ANIMAL_ID
차집합 조회하는 부분 숙지하기. 조회하는 부분의 알리아스를 써주기..
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
AND I.DATETIME > O.DATETIME
ORDER BY I.DATETIME
datetime 조회를 o로 해서 틀렸음..ㅎ
굉장히 중요하다!
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 LIMIT 3
SELECT I.ANIMAL_ID,
I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS I JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
AND I.SEX_UPON_INTAKE LIKE 'Intact%'
WHERE O.SEX_UPON_OUTCOME LIKE 'Spayed%'
OR O.SEX_UPON_OUTCOME LIKE 'Neutered%'
ORDER BY I.ANIMAL_ID
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS as I JOIN ANIMAL_OUTS as O
WHERE I.ANIMAL_ID = O.ANIMAL_ID AND I.SEX_UPON_INTAKE != O.SEX_UPON_OUTCOME
ORDER BY I.ANIMAL_ID
유념하자! 풀고나서 다른 사람 풀이 참고하기!
join 할 때 어디기준인지, 차집합인지 합집합인지 교집합인지!