2015년 9월 9일 수요일

mySQL 에서 union

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

댓글 없음:

댓글 쓰기

vsftpd FTP 서버 접속은 성공하였으나, "디렉토리 목록 조회 실패" 현상 발생시

FTP Passive 모드를 활성화 필요. 1. vsftpd 설정 변경 /etc/vsftpd/vsftpd.conf 상에 아래 내용 추가 기입 #passive modpasv_enable=YES pasv_min_port=5001 pasv...