메뉴 건너뛰기

조회 수 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

  1. No Image 12Apr
    by
    2017/04/12 Views 5392 

    [MySQL] 백업 및 복구

  2. No Image 12Apr
    by
    2017/04/12 Views 5330 

    MySQL 손상된 테이블 복구

  3. No Image 12Apr
    by
    2017/04/12 Views 5727 

    MySQL 에서 랜덤(random)으로 레코드 읽어오기

  4. No Image 12Apr
    by
    2017/04/12 Views 5252 

    MySQL root 패스워드 분실시

  5. No Image 12Apr
    by
    2017/04/12 Views 6053 

    MySQL 쿼리 결과 값 세로로 보기

  6. No Image 12Apr
    by
    2017/04/12 Views 5272 

    테이블 타입(Heap, MyIsam, InnoDB...) 변경하기

  7. No Image 12Apr
    by
    2017/04/12 Views 5071 

    백업시 캐릭터셋(charset) 지정하기

  8. 세자리 마다 콤마 찍기

  9. flush privileges 명령어

  10. No Image 12Apr
    by
    2017/04/12 Views 5352 

    MySQL JOIN 걸어서 UPDATE 하기

  11. mysql(union,join)

  12. 서브쿼리

  13. mysql(exists, not exists)

  14. No Image 16Nov
    by
    2017/11/16 Views 5076 

    다른 테이블 데이터를 원하는 테이블에 업데이트 시키기

  15. No Image 16Nov
    by
    2017/11/16 Views 8865 

    특정 COLUMN을 제외하고 SELECT/INSERT하는 방법

  16. No Image 21Nov
    by 조쉬
    2017/11/21 Views 3918 

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

  17. No Image 21Nov
    by
    2017/11/21 Views 5388 

    두 테이블을 비교하여 한쪽테이블에는 있지만 다른 테이블에는 없는 값을 뽑아내보자!

  18. Mysql Join 해부(Left, Right, Outer, Inner Join)

  19. MySQL Shard 데이터 재분배

  20. MySQL 파티션 개요

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved