MariaDB / Query / UNION, UNION ALL
UNION 또는 UNION ALL을 이용하면 여러 테이블의 데이터를 합하여 출력할 수 있습니다. 예를 들어 다음과 같은 테이블과...
SELECT * FROM test_1; +-------+-------+-------+ | col_1 | col_2 | col_3 | +-------+-------+-------+ | 1 | A | 1 | | 2 | B | 1 | | 3 | C | 2 | | 4 | D | 2 | +-------+-------+-------+
다음과 같은 테이블이 있을 때...
SELECT * FROM test_2; +-------+-------+-------+ | col_1 | col_2 | col_3 | +-------+-------+-------+ | 1 | A | 1 | | 2 | X | 1 | | 3 | Y | 2 | | 4 | Z | 2 | +-------+-------+-------+
UNION으로 합한 결과는 다음과 같습니다. 주의할 점은 중복된 데이터는 한 번만 나온다는 것입니다.
SELECT col_1, col_2 FROM test_1 UNION SELECT col_1, col_2 FROM test_2; +-------+-------+ | col_1 | col_2 | +-------+-------+ | 1 | A | | 2 | B | | 3 | C | | 4 | D | | 2 | X | | 3 | Y | | 4 | Z | +-------+-------+
만약 중복된 것이라 하더라도 출력하고 싶다면 UNION ALL을 사용합니다.
SELECT col_1, col_2 FROM test_1 UNION ALL SELECT col_1, col_2 FROM test_2; +-------+-------+ | col_1 | col_2 | +-------+-------+ | 1 | A | | 2 | B | | 3 | C | | 4 | D | | 1 | A | | 2 | X | | 3 | Y | | 4 | Z | +-------+-------+
합할 데이터의 형식이나 내용이 일치할 필요는 없습니다. 열의 개수만 맞추면 한 번에 출력 가능합니다.
SELECT col_1, col_2 FROM test_1 UNION ALL SELECT col_2, col_3 FROM test_2; +-------+-------+ | col_1 | col_2 | +-------+-------+ | 1 | A | | 2 | B | | 3 | C | | 4 | D | | A | 1 | | X | 1 | | Y | 2 | | Z | 2 | +-------+-------+