SQL/Programmers

[SQL/Programmers] JOIN(MySQL)

아웃라이어_ 2020. 6. 5. 13:19

https://programmers.co.kr/learn/challenges?tab=sql_practice_kit

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

문제설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.

ANIMAL_INS 테이블 구조는 다음과 같습니다.

 - ANIMAL_ID(VARCHAR(N), NOT NULL): 동물의 아이디

 - ANIMAL_TYPE(VARCHAR(N), NOT NULL): 생물 종

 - DATETIME(DATETIME, NOT NULL): 보호 시작일

 - INTAKE_CONDITION(VARCHAR(N), NOT NULL): 보호 시작 시 상태

 - NAME(VARCHAR(N)): 이름

 - SEX_UPON_INTAKE(VARCHAR(N), NOT NULL): 성별 및 중성화 여부

 

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다.

ANIMAL_OUTS 테이블 구조는 다음과 같습니다.

 - ANIMAL_ID(VARCHAR(N), NOT NULL): 동물의 아이디

 - ANIMAL_TYPE(VARCHAR(N), NOT NULL): 생물 종

 - DATETIME(DATETIME, NOT NULL): 보호 시작일

 - NAME(VARCHAR(N)): 이름

 - SEX_UPON_INTAKE(VARCHAR(N), NOT NULL): 성별 및 중성화 여부

 

Q. 없어진 기록 찾기

천재지변으로 인해 일부 데이터가 유실되었습니다.

입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID순으로 조회하는 SQL문을 작성해주세요.

 

A. JOIN을 위한 조건은 FROM절에 기술합니다. FROM TABLE A LEFT OUTER JOIN TABLE B ON (조인조건)

 

 

Q. 있었는데요 없었습니다

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다.

보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요.

이때 결과는 보호 시작일이 빠른 순으로 조회해야 합니다.

 

A. JOIN을 위한 조건은 FROM절에 기술합니다. FROM TABLE A LEFT OUTER JOIN TABLE B ON (조인조건)

 

 

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

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요.

이 때 결과는 보호 시작일 순으로 조회해야 합니다.

 

A. JOIN을 위한 조건은 FROM절에 기술합니다. FROM TABLE A LEFT OUTER JOIN TABLE B ON (조인조건)

LIMIT 구문을 추가하면 출력되는 데이터의 개수를 설정할 수 있습니다. 

 

Q. 보호소에서 중성화한 동물

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다.

보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의

아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL문을 작성해주세요.

중성화를 거치지 않은 동물은 성별 및 중성화 여부에 INTACT, 중성화를 거친 동물은 Spayed 또는 Neutered 라고 표시되어 있습니다. 

 

A. JOIN을 위한 조건은 FROM절에 기술합니다. FROM TABLE A JOIN TABLE B ON (조인조건)

LIKE 구문과 Wild card(%, _)를 추가하면 문자열의 패턴을 설정할 수 있습니다.