[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
반응형
'Programming > MySQL' 카테고리의 다른 글
[MySQL] JOIN 명령어를 이용한 테이블 결합 (0) | 2016.01.19 |
---|---|
[MySQL] DB 데이터 저장시 이스케이프 문자 처리 (mysql_real_escape_string) (0) | 2015.10.20 |
[MySQL] DB 데이터 랜덤으로 가져오기 - ORDER BY RAND() (0) | 2015.09.16 |