SQL문 UNION 관련해서 질문 드립니다.
본문
A테이블
date |
code |
name |
price |
2017-06-05 |
AAA |
공책 |
100 |
2017-01-10 |
AAA |
연필 |
200 |
2017-02-30 |
AAA |
필통 |
300 |
B테이블
date |
code |
add_name |
add_price |
2017-06-30 |
AAA |
연필심 |
10 |
2017-05-07 |
AAA |
샤프심 |
11 |
2017-04-22 |
CCC |
봉지 |
23 |
2016-12-21 | BBB | 샤프심 | 11 |
SQL문 이용해서 원하는 데이터
date |
code |
name |
price |
code |
add_name |
add_price |
2017-06-30 |
AAA |
|
|
AAA |
연필심 |
10 |
2017-06-05 |
AAA |
공책 |
100 |
AAA |
|
|
2017-05-07 |
AAA |
|
|
AAA |
샤프심 |
|
2017-02-30 |
AAA |
필통 |
300 |
AAA |
|
|
2017-01-10 |
AAA |
연필 |
200 |
AAA |
|
|
|
|
|
|
|
|
|
A 테이블 하고 B 테이블이 있는데 WHERE절이 code가 AAA이어야 하고
date 필드가 DESC가 되서
A, B 테이블이 UNION해서 3번째 표대로 출력을 하고 싶습니다.
SELECT data, code, name, price FROM A WHERE code=AAA
UNION ALL
SELECT data, code, add_name, add_price FROM B WHERE code=AAA
이렇게 일단 해보았는데 BBB 테이블의 컬럼명이 AAA테이블 컬럼명으로 대체되고..
3번째 테이블처럼 출력을 할려면 어떻게 해야되나요?
답변 2
select * from (
select date, code, name, price, '' add_name, '' add_price from a where code='AAA'
union all
select date, code, '' name, '' price, add_name, add_price from b where code='AAA'
) a order by date desc
add_name이 name으로 대체 되고 그런식인가요?
SELECT data, code, add_name AS name, add_price AS price FROM B WHERE code=AAA