반응형
테이블 정보
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 |
최근댓글