rubus0304 님의 블로그
[라이브세션 4차] SQL UNION, JOIN 본문
새로로 붙이면 UNION
가로로 붙이면 JOIN
중복되는 데이터가 있을 땐?
***규칙 ****
• 열의 갯수와 순서가 모든 쿼리에서 동일해야 합니다.
• 데이터의 형식이 일치 ('문자'는 '문자', 숫자는 숫자) 해야 합니다.
• 위 두 가지의 조건을 만족할 경우, UNION 과 UNION ALL 은 2개 이상의 테이블도 결합할 수 있습니다.
ex)
이름, 숫자
이름이름 as 이름,숫자 -> OK
테이블이 완전히 똑같지는 않아도 됨
select 컬럼1,컬림2,컬럼3
union
select 컬럼1, 컬럼2,컬럼3 , 컬럼4, 컬럼 5
있어도 컬럼,1,2,3 순서와 형식 같다면 가능 공통된 컬럼 1, 2, 3 3개만 나옴 !
JOIN
공통 컬럼 내용만 같으면 '이름'은 달라도 괜춘!!
** 공통 컬럼이 꼭 select 구문 절 뒤에 와야되는건 아니다./ 공통 컬럼 이름 달라도 됨 // (UNION은 컬럼이름 똑같이 해야됨)
# JOIN 기본 구문
# 공통컬럼이 1개인 경우
select 컬럼1, 컬럼2..
from 테이블 a
join # join의 종류는 아래에서 설명할 예정입니다.
select 컬럼1, 컬럼2..
from 테이블 b
on a.공통컬럼=b.공통컬럼
---------------------------------------------------------------------------
# JOIN 기본 구문
# 공통컬럼이 2개 이상인 경우
select 컬럼1, 컬럼2..
from 테이블 as a
join # join의 종류는 아래에서 설명할 예정입니다.
select 컬럼1, 컬럼2..
from 테이블 as b
on a.공통컬럼=b.공통컬럼 and a.공통컬럼2=b.공통컬럼2
그냥 join 은 inner join 을 의미함.
inner join 둘 다 만족하는 값만
left join 안 잃는 쪽이 왼쪽
right join 안 잃는 쪽이 오른쪽
full outer join 모든 데이터 보고 싶을 때 사용
INNER JOIN
원래는 select from 뒤에 select from 쓰고 쓰는데 안 쓰고 바로 inner join 써도 됨
# INNER JOIN 작성법 (서브쿼리 활용편)
select 테이블명1.컬럼a, ....
from( select 컬럼a, 컬럼b ...
from 테이블1
)as 테이블명1 #첫번째 셀렉트 절의 결과를 '테이블명1' 로 명시
inner join #(또는 join) #테이블1과 테이블2를 inner join 하겠다는 의미
( select 컬럼c, 컬럼d...
from 테이블2
)as 테이블명2 #두번째 셀렉트 절의 결과를 '테이블명2' 로 명시
on a.공통컬럼=b.공통컬럼# 공통된 의미의 컬럼으로, 컬럼이름이 같을필요는 없음
# 공통컬럼은 ON 절의 조건절이 되며, 조건절은 1개가 아닐 수 있음
# 즉, on a.공통컬럼=b.공통컬럼 and a.공통컬럼2=b.공통컬럼2 가 될 수 있음
'Data Analyst > 라이브세션' 카테고리의 다른 글
[라이브세션] SQL 마지막 윈도우 함수 (0) | 2024.10.16 |
---|---|
[라이브세션 ⑥] SQL Join 복습 (0) | 2024.10.14 |
라이브세션 ③/⑤ SQL과제 (0) | 2024.10.11 |
[라이브 세션 ②] group by, where(group by 전) <> having(group by 후) subquery (0) | 2024.10.07 |
[라이브세션 ①] SQL 기본 / 과제/ SQL 설치 DB 생성 오류해결 (1) | 2024.10.02 |