반응형
DB 작업을 하다 보면 때로,
서로 다른 데이터가 있는 테이블에서 합쳐서 보여줘야 하는 경우가 간혹 생깁니다.
INNER JOIN 이나 OUTER JOIN 등으로 할 수 없는 상황입니다.
이런 경우 필요한 것이 바로 UNION 입니다.
UNION은 MySQL에서도 지원하는 것으로 알고 있습니다.
UNION에서 주의할 점은 두 테이블을 하나로 합치는 것이기 때문에
추출하는 테이블의 필드 이름, 타입, 그리고 필드 갯수가 일치해야 합니다.
select f1, f2, f3, f4, "1" as f5
from table1
where f1='aaa'
UNION
select a as f1, b as f2, c as f3, d as f4, "2" as f5
from table2
where a='bbb'
테이블명은 alias를 해서 맞춰 주면 되고, 형변환은... 알아서.. ^^;;
팁으로, 해당 데이터가 어느 테이블에서 왔는지 알고 싶은데,
데이터 값만으로는 구분하기 힘든 경우에는
"1", "2" 이런 식이나 기타 구분이 가능한 방식으로 고정값을 추가해서
그것으로 확인하면 됩니다.
다른 모든 조건은 기존 SELECT 문법을 따르고 있으니,
그것을 참조하시면 됩니다.
반응형