Programming/MySQL

[MySQL] UNION을 이용한 다중 테이블 병합 데이터 출력

DOTI 2015. 10. 16. 10:33
[MySQL] UNION을 이용한 다중 테이블 병합 데이터 출력
반응형

UNION 을 이용하면 비슷한 구조를 가진 테이블의 데이터를 집합시켜서 하나의 테이블처럼 데이터를 출력할 수 있다


[예제테이블]

tb1

f_tb1_a

f_tb1_b

1

red

2

blue

3

green


tb2

f_tb2_c

f_tb2_d

a

apple

b

lemon

c

peach




[기본문]

1
SELECT f_tb1_a, f_tb1_b FROM tb1 UNION SELECT f_tb2_c, f_tb2_d FROM tb2;
cs


[출력]

f_tb1_a

f_tb1_b

1

red

2

blue

3

green

a

apple

b

lemon

c

 peach


UNION은 서로 다른 여러 테이블을 하나의 테이블로 구성할 수 있는데 기본문과 같은 경우 차례데로 테이블의 데이터를 가져오며, 필드 이름의 경우 첫번째에 해당하는 테이블의 이름을 가져온다



[응용]

1
2
3
SELECT * FROM (
    SELECT f_tb1_a, f_tb1_b, 'tb1' AS table_name FROM tb1 UNION SELECT f_tb2_c, f_tb2_d, 'tb2' AS table_name FROM tb2
) AS U ORDER BY U.f_tb1_b ASC
cs


[출력]

f_tb1_a

f_tb1_b

table_name 

a

apple

tb2

2

blue

tb1

3

green

tb1

b

lemon

tb2

c

peach

tb2

1

red 

tb1


응용의 경우 테이블 이름을 하나의 필드로 추가하여 함께 출력할 수 있으며, 출력된 결과 내에서 where 문이나 order 문 등을 이용하고자 할때 다시 한번 select 문으로 감싸주어 처리를 한다





참고사이트

http://samjiahn.tistory.com/39




반응형