
RDBMS(관계형 데이터 베이스)
tmi)
관계형 데이터베이스는 데이터 정규화 필연적이다
JOIN이란?
여러 개의 테이블을 하나의 테이블처럼 볼 수 있게 (변경 x / 조회만) 해주는 문법
--> 기준은 보통 키를 사용한다
on절(or , and 처럼) 조건절이다

join절
join과 결이 비슷한 with as/subquery
서브 쿼리(쿼리 안에 쿼리)
sub query
한번 가공한 쿼리를 쿼리에 사용하는 느낌?
서브 쿼리는 단점이 꽤 있음
1) join에 비해 실행 속도가 느림
2) 서브 쿼리 안에 조건을 여러개 붙일 수 없다
그럼에도 서브 쿼리를 알아야 하는 이유?
1) 예전에 만들어진 프로젝트의 쿼리들에는
서브쿼리의 활용이 상당히 많다
2) 간단한 값 검증만 할때 유용함
서브쿼리 코드 예시
서브쿼리1
SELECT *
FROM t_user AS u
INNER JOIN (
SELECT COUNT(id) AS `주문개수` , userNO
FROM t_order
GROUP BY userNo
) AS o
ON u.id = o.userNo
.... 밑과 같음
SELECT u.*, COUNT(o.id),o.userNo
FROM t_user AS u
INNER JOIN t_order AS o
ON u.id = o.userNo
GROUP BY o.userNo
서브 쿼리2 where 서브 쿼리- (1번 주문에 대한)
SELECT userName
FROM t_user
WHERE id = (SELECT userNo FROM t_order WHERE id = 1)
서브 쿼리 3 - with as (쿼리 별로 따로 저장 한다이?)
WITH a AS(
SELECT *
FROM t_user
) ,
b AS (
SELECT *
FROM t_order
)
SELECT a.*, b.*
FROM a
INNER JOIN b
ON a.id = b.userNO