프로그래머스 SQL 문제 레벨3

Sorbet·2021년 5월 23일
0

없어진 기록 찾기

SELECT OO.ANIMAL_ID, OO.NAME 
FROM ANIMAL_OUTS OO LEFT OUTER JOIN ANIMAL_INS II
ON OO.ANIMAL_ID = II.ANIMAL_ID
WHERE II.ANIMAL_ID IS NULL

join : 테이블 두개가 하나로 합치는거(주점에서의 그것과 동일)

  • 조인은 이너조인과 아우터조인 두가지가 있는데
    • 이너조인 : 교집합 >> 남은 안주랑 술만 모아서 새로운 테이블에 앉는거
    • 아우터조인 : 합집합 >> 그냥 테이블 두개를 이어붙여서 두개였던 테이블이 하나의 테이블로 붙어버리는거
      • Left-outer-join : 남자테이블이 여자테이블로 술잔만 챙겨서 옮기는거
      • Right-outer-join : 여자테이블에서..... 너무 멀리 와버린거같다 DB 공부 열심히하자

UNION 과 다른점

  • UNION은 그냥 단순히 테이블이 붙어버림, 같은 속성의 컬럼이 있다면 중복의 가능성
  • JOIN에서는 ON 키워드로 테이블 병합의 기준점(기준 컬럼)이 존재해서
    • 중복된 속성을 제거(그러니까 하나만 표기)하여 같은 속성을 한 번만 표기하는 방법.

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

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

헤비 유저가 소유한 장소

SELECT ID , NAME, HOST_ID 
FROM PLACES 
WHERE HOST_ID IN (
    SELECT HOST_ID 
    FROM PLACES
    GROUP BY HOST_ID 
    HAVING COUNT(ID) >= 2
)
ORDER BY ID

있었는데요, 없었습니다

코드를 입력하세요

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

코드를 입력하세요

템플릿



# 
- 링크:
- 풀이 : 
sql
코드를 입력하세요

profile
Sorbet is good...!

0개의 댓글