mySQL에서의 union(http://dev.mysql.com/doc/refman/5.7/en/union.html)은
mysql.com에 설명이 가장 잘 되어 있습니다.
union은 각각 다른 테이블을 query했을 때의 결과를 한번에 보여주는 효과가 있다.
performance와 별개로 편합니다.performance도 적절한 index가 있다면 문제 없어 보입니다.
오랜만에 union했는데 어렵습니다.
그래서 나처럼 오랜만에 한다거나 또는 처음하시는 분들은 , 거저 참조로만 보시기 바랍니다.
select A.Key, A.Column1, A.Column2
from Table1 A
where A.Key = 'itjlife'
group by A.Key
union [all] -- <------all을 넣으면 DISTINCT를 하지 않습니다.
select B.Key, B.Column1, B.Column2
from Table2 B
where B.Key = 'itjlife'
group by B.Key
나의 경우 A에는 Column1이 있고,
B에는 Column2가 있습니다.
그런데 이둘 각각의 합이 나오게 하고 싶어서 다음과 같이 시도합니다.
select key, sum(c1) cc1, sum(c2) cc2
from
(
select A.Key key, A.Column1 c1, 0 c2
from Table1 A
where A.Key = 'itjlife'
group by A.Key
union
select B.Key key, 0 c1, B.Column2 c2
from Table2 B
where B.Key = 'itjlife'
group by B.Key
) T1
group by T1.key
댓글 없음:
댓글 쓰기