반응형
테이블 정보
tbl_person
---------------------------
seq name age
------ --------- --------
1 어린이 10
2 청소년 15
3 대학생 20
tbl_info
----------------------------------------------------
seq person_seq school explanation
------ ---------- ------------ ------------------
1 1 초등학교 열심히 놀기
2 2 중학교 공부 시작
3 2 고등학교 공부 힘듬
4 4 대학교 다시 놀기
1. A LEFT JOIN B : A전체 + B값
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a LEFT JOIN tbl_info b ON a.seq = b.person_seq;
===========================================================
seq name age school explanation
------ --------- ------ ------------ ------------------
1 어린이 10 초등학교 열심히 놀기
2 청소년 15 중학교 공부 시작
2 청소년 15 고등학교 공부 힘듬
3 대학생 20 (NULL) (NULL)
2. RIGHT JOIN : A + B전체
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a RIGHT JOIN tbl_info b ON a.seq = b.person_seq;
===========================================================
seq name age school explanation
------ --------- ------ ------------ ------------------
1 어린이 10 초등학교 열심히 놀기
2 청소년 15 중학교 공부 시작
2 청소년 15 고등학교 공부 힘듬
(NULL) (NULL) (NULL) 대학교 다시 놀기
3. INNER JOIN : 조건값이 서로 있는 값만 나타낸다.
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a INNER JOIN tbl_info b ON a.seq = b.person_seq;
===========================================================
seq name age school explanation
------ --------- ------ ------------ ------------------
1 어린이 10 초등학교 열심히 놀기
2 청소년 15 중학교 공부 시작
2 청소년 15 고등학교 공부 힘듬
-----------------------------------------------------------
(참고)아래의 쿼리 결과값과 동일함
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a, tbl_info b
WHERE a.seq = b.person_seq
4. Full Outer Join : A전체 + B전체
- MySql은 Full Outer Join이 없으므로 Left + Right Join을 이용해서 구현한다.
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a LEFT JOIN tbl_info b ON a.seq = b.person_seq
UNION
SELECT a.seq, a.name, a.age, b.school, b.explanation
FROM tbl_person a RIGHT JOIN tbl_info b ON a.seq = b.person_seq
===========================================================
seq name age school explanation
------ --------- ------ ------------ ------------------
1 어린이 10 초등학교 열심히 놀기
2 청소년 15 중학교 공부 시작
2 청소년 15 고등학교 공부 힘듬
3 대학생 20 (NULL) (NULL)
(NULL) (NULL) (NULL) 대학교 다시 놀기
반응형
'웹 > sql(mysql)' 카테고리의 다른 글
MySQL NULL 체크/조건문, Select 데이터 합치기 (0) | 2021.11.20 |
---|---|
MySQL 날짜/시간 표현, 조건검색(최근 하루/일주일/한달) (1) | 2021.11.20 |
최근댓글