Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Labor Management System
- MySQL
- Gaimification
- ABC Analysis
- 신경쓰기의 기술
- 딥러닝
- 데이터분석
- forecast
- 파이썬
- tensorflow
- eda
- Inventory Optimization
- ModelCheckPoint
- 웨어하우스 보관 최적화
- 피그마인디언
- SKU Consolidation
- leetcode
- TensorFlowGPU
- oracle
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- pandas profiling
- Product Demand
- MS SQL Server
- 프로그래머스
- 코딩테스트연습
- SQL
- ProfileReport
- 코딩테스트
- kaggle
- HackerRank
Archives
- Today
- Total
오늘도 배운다
없어진 기록 찾기 / 프로그래머스, SQL 코딩테스트 연습JOIN 본문
문제
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
제출답안
SELECT ao.animal_id, ao.name
FROM animal_ins AS ai RIGHT OUTER JOIN animal_outs AS ao ON ai.animal_id = ao.animal_id
-- Oracle의 경우 Line 2에서 AS 삭제.
WHERE ai.animal_id IS NULL
ORDER BY 1, 2
풀이
더보기
animal_ins(AS ai)와 animal_outs (AS ao)을 Right Outer Join 함
FROM animal_ins AS ai RIGHT OUTER JOIN animal_outs AS ao ON ai.animal_id = ao.animal_id
>> animal_ins (AS ai)와 animal_outs (AS ao)를 Right Outer Join 수행
>> Outer Join의 경우, 값이 없는 것을 Null로 처리하기 때문에 한 테이블에서 누락된 데이터를 찾아야할 때 쓰면됨
>> Right Outer Join을 함으로써 animal_id를 기준으로 조인했을 때 오른쪽 테이블 (ao)에는 있지만 왼쪽 테이블 (ai)에는 없는 값이 Null로 표기됨
>> 따라서 Null로 표기된 값들이 ao 에는 있으나 ai에는 없는 데이터이고 이들을 WHERE을 통해 선택함
※ 오라클의 경우, 위 코드에 AS를 지워줘야함. 오라클에서는 AS를 쓰지 않는데, 본인의 경우 MySQL에서 코드를 명확하게 하기위해 AS를 꼭 입력함.
문제 바로가기
728x90
'코딩테스트연습(SQL)' 카테고리의 다른 글
입양 시각 구하기(2) / 프로그래머스, SQL 코딩테스트 연습 GROUP BY (0) | 2022.11.21 |
---|---|
보호소에서 중성화한 동물 / 프로그래머스, SQL 코딩테스트 연습JOIN (0) | 2022.11.21 |
있었는데요 없었습니다 / 프로그래머스, SQL 코딩테스트 연습JOIN (0) | 2022.11.21 |
오랜 기간 보호한 동물(1) / 프로그래머스, SQL 코딩테스트 연습 JOIN (0) | 2022.11.21 |
오랜 기간 보호한 동물(2) / 프로그래머스, SQL 코딩테스트 연습 String, Date (0) | 2022.11.21 |
Comments