메뉴 건너뛰기

조회 수 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 25Nov
    by
    2020/11/25 Views 773 

    [mysql,mariaDB] 컬럼 암호화, 복호화

  3. UPDATE ~ CASE 문을 사용한 조건별 업데이트

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

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

  5. SQL 고급

  6. No Image 26Mar
    by
    2021/03/26 Views 768 

    order by field 와 union, 원하는 대로 정렬 하기

  7. No Image 26Mar
    by
    2021/03/26 Views 125 

    no exists, not in 을 이용한 조건에 만족하지 않는 것들 구하기, 둘의 차이점

  8. No Image 12Apr
    by
    2017/04/12 Views 5105 

    MySQL의 alter table 명령어 모음

  9. No Image 12Apr
    by
    2017/04/12 Views 5621 

    MySQL에서 원격 IP 접속 허용하기

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

    MySQL에서 사용자 권한 주기 (grant 명령어)

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

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

  12. No Image 26Mar
    by
    2021/03/26 Views 201 

    mysqlbinlog (mysql 백업, 로그남기기)

  13. No Image 07Aug
    by
    2015/08/07 Views 7384 

    MySQL/MariaDB 백업 & 복원 - mysqldump

  14. No Image 12Jan
    by
    2023/01/12 Views 117 

    mysql-bin(binary log)파일 정리 및 삭제

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

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

  16. mysql(union,join)

  17. mysql(exists, not exists)

  18. MYSQL 프로시져 PROCEDURE

  19. No Image 26Mar
    by
    2021/03/26 Views 5078 

    mysql 포트 바꾸기, 외부에서 접속하기

  20. MySQL 파티션 개요

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved