메뉴 건너뛰기

조회 수 3920 추천 수 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

  1. No Image 24Jul
    by
    2018/07/24 Views 4367 

    MySQL Table 복구 - Got error 127 from storage engine

  2. No Image 28Dec
    by
    2017/12/28 Views 4262 

    데이터베이스 파티셔닝이란

  3. MySQL 파티션 개요

  4. mysql(exists, not exists)

  5. No Image 22Dec
    by
    2017/12/22 Views 3976 

    날짜 관련 함수 모음.

  6. 전체 텍스트 검색과 파티션

  7. No Image 21Nov
    by 조쉬
    2017/11/21 Views 3920 

    Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기

  8. No Image 28Dec
    by
    2017/12/28 Views 3917 

    MySQL 연결 속도

  9. 전체 텍스트 검색과 파티션

  10. 일반적인 오류를 해결하는 유용한 정보들

  11. No Image 24Jul
    by
    2018/07/24 Views 3864 

    MySQL〃오라클의 nextval을 MySQL에서 사용하기

  12. mysql(union,join)

  13. 서브쿼리

  14. No Image 11Jan
    by
    2019/01/11 Views 3163 

    중복데이터 하나만 빼고 삭제

  15. No Image 18Jul
    by
    2018/07/18 Views 2824 

    특정 테이블만 replication 하거나 제외하는 방법

  16. No Image 18Jul
    by
    2018/07/18 Views 2750 

    MySQL 클라이언트/서버 프로토콜

  17. No Image 19Feb
    by
    2019/02/19 Views 2424 

    한글정렬 order by

  18. No Image 05Mar
    by
    2019/03/05 Views 2097 

    [MySQL] 세로열을 가로열로 출력하기

  19. MySQL DB 에 한글 utf8 문자열 INSERT 오류 해결 방법

  20. No Image 11Jan
    by
    2019/01/11 Views 1949 

    MySQL 중복 데이터 찾아서 삭제하기

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved