UNION ALL로 두 컬럼의 값을 위아래로 합쳐 단일 컬럼 결과 집합을 만들 수 있습니다. 중복 제거가 필요하면 UNION(기본 중복 제거)을 쓰세요.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1813 (
-> Name1 VARCHAR(20),
-> Name2 VARCHAR(20)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1813 VALUES('John','Chris');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1813 VALUES('Adam','Robert');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1813 VALUES('Mike','Sam');
Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1813;
+-------+--------+ | Name1 | Name2 | +-------+--------+ | John | Chris | | Adam | Robert | | Mike | Sam | +-------+--------+ 3 rows in set (0.00 sec)
두 컬럼 합쳐 단일 컬럼으로
mysql> SELECT Name1 AS Name FROM DemoTable1813
-> UNION ALL
-> SELECT Name2 AS Name FROM DemoTable1813;
+--------+ | Name | +--------+ | John | | Adam | | Mike | | Chris | | Robert | | Sam | +--------+ 6 rows in set (0.00 sec)
차이: UNION = 중복 제거 + 정렬(오버헤드 있음). UNION ALL = 중복 허용 + 순서 유지 + 빠름. 컬럼명/타입/개수가 양쪽 SELECT에서 일치해야 합니다. AS Name으로 결과 컬럼명 통일.