메뉴 건너뛰기

조회 수 3918 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Union을 사용할 때 주의할 점.

- 대응하는 필드의 이름이 같아야 한다. 같지 않다면 AS 를 사용하여 같게 만든다.
- 대응되는 각 필드의 타입이 같아야 한다.



* Member 테이블
 seq u_name u_email  etc 
 1 개똥이 aa@aa.co.kr ...
 2 소똥이 bb@bb.co.kr ...
 3 말똥이 cc@cc.co.kr ...

* Newsletter 테이블
letter_ seq letter_name letter_email  letter_etc 
 1 홍길동 aa@aa.co.kr ...
 2 홍당무 dd@d.co.kr ...
 3 노찌롱 ee@ee.co.kr ...

위의 2개 테이블에서 이메일을 추출해야 할 경우 union을 사용하면 간단하다.

이렇게 추출할 경우 중복되지 않은 유일한 정보 만을 추출하는 경우와 중복되더라도 모두 추출하는 경우가 있을 것이다.


Union 을 사용하는 경우 대응되는 각 필드의 이름을 같게 맞추어 쿼리를 한다.
( SELECT u_name, u_email FROM Member WHERE seq < 10 )
UNION
( SELECT letter_name AS u_name, letter_email AS u_email FROM Newsletter WHERE letter_seq < 10 )


이렇게 쿼리를 하면 이름(user_name)과 이메일(user_email)이 같은 경우 하나의 값 만 추출하여 distinct 함수와 같은 효과를 준다.


만약 중복되더라도 모든 정보를 추출해야 한다면 Union ALL 연산자를 이용하면 된다.
( SELECT u_name, u_email FROM Member WHERE seq < 10 )
UNION ALL
( SELECT letter_name AS u_name, letter_email AS u_email FROM Newsletter WHERE letter_seq < 10 )


UNION ALL 연산자를 이용하면 간단하게 처리가 가능하다.


UNION을 하면 결과가 테이블에 종속되는 것이 아니다. 그러므로 결과를 정렬을 해야 한다면 쿼리의 끝에 정렬을 추가하면 된다.
( SELECT u_name, u_email FROM Member WHERE seq < 10 )
UNION
( SELECT letter_name AS u_name, letter_email AS u_email FROM Newsletter WHERE letter_seq < 10 )
ORDER BY u_email

List of Articles
번호 제목 날짜 조회 수
126 mysql table 값 변경 mariadb 테이블 값 변경 2023.01.12 83
125 FORMAT 문법 사용 하기(숫자 자리수 나타내기) file 2023.01.10 98
124 MYSQL IN&BETWEEN&NULL&예제&FROM절 문제3 file 2021.03.27 104
123 MYSQL any&all&in&예제& WHERE 절 문제4 file 2021.03.27 111
122 CASE 문법 사용 하기 file 2023.01.10 111
121 데이터베이스별 / 테이블별 용량 확인 하기 2023.01.10 115
120 mysql-bin(binary log)파일 정리 및 삭제 2023.01.12 117
119 MYSQL Groupby & having 예제 문제 6 file 2021.03.27 118
118 no exists, not in 을 이용한 조건에 만족하지 않는 것들 구하기, 둘의 차이점 2021.03.26 125
117 fulltext 관련 글 2021.03.26 125
116 MYSQL order by 예제&문제 7 file 2021.03.27 126
115 binlog 조회 / 삭제 / 보관 기간 설정 file 2023.01.10 127
114 column의 정보 중에서 column 설명(column_comment) 2021.03.26 129
113 MYSQL FULLTEXT INDEX & PARTION 검색기능향상&파티션 file 2021.03.27 131
112 MYSQL 부속질의어 예제&문제 9 file 2021.03.27 134
111 MYSQL 기초문법&예제&문제 2 file 2021.03.27 136
110 MYSQL 통계 함수 SUM AVG MAX MIN 예제 문제 5 file 2021.03.27 137
109 MariaDB can't create test file lower-test 2023.02.16 137
108 MYSQL select 명령문의 조합 &union 예제&문제 8 file 2021.03.27 138
107 엑셀로 되어있는 부분 db로 import하는 방법 2020.07.28 144
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved