ToBe끝판왕

[ 프로그래머스 / SQL ] JOIN - 보호소에서 중성화한 동물 본문

■ 프로그래밍 SKILLS/SQL

[ 프로그래머스 / SQL ] JOIN - 보호소에서 중성화한 동물

업그레이드중 2022. 6. 22. 14:17
반응형

 


 

보호소에서 중성화한 동물

 

Programmers의 SQL 고득점 Kit

JOIN 문제

 

 

 해당 문제 링

https://programmers.co.kr/learn/courses/30/lessons/59045

 

코딩테스트 연습 - 보호소에서 중성화한 동물

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 


 

정답 및 풀이

 

▶  JOIN 문

•  조인( JOIN ) 은 2개의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법이다.

•  INNER JOIN( 내부 조인 )은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.

•  OUTER JOIN( 외부 조인 )은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.

•  CROSS JOIN( 상호 조인 )은 한쪽 테이블의 모든 행과 다른 테이블의 모든 행을 조인하는 기능이다.

•  SELF JOIN( 자체 조인 )은 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다.

 

 

•  INNER JOIIN( 내부 조인 )

-  두 테이블 연결할 때, 가장 많이 사용한다.

-  그냥 조인이라고 부르는것은 INNER JOIN을 의미한다.

SELECT 조회할 컬럼
FROM 테이블명1
INNER JOIN 테이블명2
ON 테이블1.컬럼 = 테이블2.컬럼;
[ WHERE 조건 ]

 

 

•  OUTER JOIN( 외부 조인 )

-  INNER JOIN은 두 테이블에 모두 데이터가 있어야 결과가 나오지만, 외부조인은 한쪽에만 데이터가 있어도 나온다.

-  주로 LEFT OUTER JOIN이 많이 쓰인다.

SELECT 조회할 컬럼명
FROM 테이블명1( left 테이블 )
< LEFT / RIGHT / FULL > OUTER JOIN 테이블명2( right 테이블 )
ON 조건문;
[ WHERE 조건 ]


※ OUTER JOIN 종류
•  LEFT OUTER JOIN : 왼쪽 테이블의 모든 값이 출력되는 조인
•  RIGHT OUTER JOIN : 오른쪽 테이블의 모든 값이 출력되는 조인
•  FULL OUTER JOIN : 왼쪽 or 오른쪽 테이블의 모든 값이 출력되는 조인

 

 

▶  정답

•  보호소에 들어올 당시에는 중성화가 되지 않았지만, 보호소에서 나갈 당시에는 중성화된 동물의 아이디와

   생물 종, 이름을 조회하므로 SELECT로 ANIMAL_ID , ANIMAL_TYPE, NAME을 조회하고

   중성화되지 않은 동물은 Like함수와 INACT를 이용하여 정의하고 중성화를 이미 한경우도 같이 정의해준다.

•  아이디순으로 조회해야 하기 때문에 ORDER BY를 사용해 준다.

SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME
FROM ANIMAL_INS AS INS join ANIMAL_OUTS AS OUTS
on INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.SEX_UPON_INTAKE LIKE 'INTACT%' AND OUTS.SEX_UPON_OUTCOME NOT LIKE 'INTACT%'
ORDER BY INS.ANIMAL_ID;

 

 

 

 

반응형
Comments