메뉴 건너뛰기

조회 수 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. MySQL 에서 테이블에 이미 존재하는 값으로 UPDATE 하는 경우

  2. No Image 18Jul
    by
    2018/07/18 Views 1558 

    MyISAM 스토리지 엔진에서 테이블의 최대 저장 row 개수

  3. No Image 18Jul
    by
    2018/07/18 Views 1608 

    MySQL replication SQL 문 실행 오류 해결 방법

  4. No Image 18Jul
    by
    2018/07/18 Views 1672 

    mysql-bin 로그를 SQL 문으로 변환한는 방법

  5. No Image 18Jul
    by
    2018/07/18 Views 1675 

    InnoDB 스토리지 엔진에서 테이블의 최대 저장 row 개수

  6. No Image 18Jul
    by
    2018/07/18 Views 1941 

    MySQL 마스터/마스터 replication 에서 AUTO_INCREMENT 문제 해결 방법

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

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

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

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

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

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

    한글정렬 order by

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

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

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

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

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

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

  14. 서브쿼리

  15. mysql(union,join)

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

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

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

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

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

    MySQL 연결 속도

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

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

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved