본문 바로가기
공부/SQL

프로그래머스 SQL 고득점 Kit - Join; MySQL

by thegreatjy 2022. 3. 2.
728x90

https://programmers.co.kr/learn/courses/30/parts/17046

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


0.  join 공부

https://www.w3schools.com/sql/sql_join.asp

 

SQL Joins

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

- 문법

SELECT 속성1, 속성2, ..., 속성
FROM 테이블 A INNER JOIN 테이블 B ON A.속성 = B.속성
WHERE 조건;

 

1.  없어진 기록 찾기

SELECT a.ANIMAL_ID, a.NAME
from ANIMAL_OUTS a left join ANIMAL_INS b on a.ANIMAL_ID = b.ANIMAL_ID
where b.ANIMAL_ID is null
order by ANIMAL_ID;

 

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

SELECT a.ANIMAL_ID, a.NAME
from ANIMAL_OUTS a join ANIMAL_INS b on a.ANIMAL_ID = b.ANIMAL_ID
where a.DATETIME < b.DATETIME
order by b.DATETIME;

 

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

SELECT a.NAME, a.DATETIME
from ANIMAL_INS a left join ANIMAL_OUTS b on a.ANIMAL_ID = b.ANIMAL_ID
where b.ANIMAL_ID is null
order by a.DATETIME limit 3;

 

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

SELECT a.ANIMAL_ID, a.ANIMAL_TYPE, a.NAME
from ANIMAL_INS a join ANIMAL_OUTS b on a.ANIMAL_ID = b.ANIMAL_ID
where a.SEX_UPON_INTAKE like "%Intact%"
and b.SEX_UPON_OUTCOME not like "%Intact%"
order by a.ANIMAL_ID;
SELECT a.ANIMAL_ID, a.ANIMAL_TYPE, a.NAME
from ANIMAL_INS a join ANIMAL_OUTS b on a.ANIMAL_ID = b.ANIMAL_ID
where a.SEX_UPON_INTAKE like "%Intact%"
and (b.SEX_UPON_OUTCOME like "%Spayed%" 
     or b.SEX_UPON_OUTCOME like "%Neutered%")
order by a.ANIMAL_ID;

sql은 필요할 때마다 검색해서 하다보니 ... ^^ ㄹㅇ 조인만 사용해서 풀었다. 다른 거 다 까먹어부렸다.. 

다시 보니 간단한데 막상 쓰려고 하면 기억이 안남 

 

* LIMIT  n  :  상위 n개까지 select

상위 n개까지 select할 때 사용 (MYSQL)

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

 

* NOT IN

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...)
혹은
WHERE column_name IN (SELECT STATEMENT);

 

* LIKE

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
The percent sign (%) represents zero, one, or multiple characters
The underscore sign (_) represents one, single character

%는 0개 이상의 문자열 	// '%a1s2d3%'
_는 하나의 문자		// '_bcdefg'

* EXISTS

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

https://www.w3schools.com/sql/sql_top.asp

 

 

SQL SELECT TOP, LIMIT, FETCH FIRST ROWS ONLY, ROWNUM

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

728x90