English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 MySQL UNION 연산자의 문법과 예제를 소개합니다.
MySQL UNION 연산자는 두 개 이상의 SELECT 문의 결과를 하나의 결과 집합으로 합치는 데 사용됩니다. 여러 SELECT 문은 중복 데이터를 제거합니다.
MySQL UNION 연산자 문법 형식:
SELECT expression1, expression2, ... expression_n FROM tables [WHERE 조건] UNION [ALL | DISTINCT] SELECT expression1, expression2, ... expression_n FROM tables [WHERE 조건];
expression1, expression2, ... expression_n: 검색할 열.
tables: 검색할 데이터 테이블.
WHERE 조건: 선택적으로 검색 조건.
DISTINCT: 선택적으로 결과 집합에서 중복 데이터를 제거합니다. UNION 연산자는 기본적으로 중복 데이터를 제거하므로 DISTINCT 접두사는 결과에 영향을 미치지 않습니다。
ALL: 선택적으로 모든 결과 집합을 반환하고 중복 데이터를 포함합니다。
이 튜토리얼에서 우리는 w3codebox 샘플 데이터베이스.
아래는 "Websites" 테이블에서 선택된 데이터입니다:
mysql> SELECT * FROM Websites; +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 基础教程网 | http://ko.oldtoolbag.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
아래는 "apps" APP의 데이터입니다:
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
下面的 SQL 문장은 "Websites"와 "apps" 테이블에서 모든다른country(다른 값만):
SELECT country FROM Websites UNION SELECT country FROM apps ORDER BY country;
위 SQL 실행 결과는 다음과 같습니다:
주석:UNION은 두 테이블에서 모든 country를 나열할 수 없습니다. 일부 웹사이트와 APP이 같은 국가에서 왔을 경우, 각 국가는 한 번만 나열됩니다. UNION은 다른 값을 선택합니다. 중복 값을 선택하려면 UNION ALL을 사용하세요!
다음 SQL 문은 UNION ALL을 사용하여 "Websites"와 "apps" 테이블에서 선택합니다:모든country(중복 값도 포함):
SELECT country FROM Websites UNION ALL SELECT country FROM apps ORDER BY country;
위 SQL 실행 결과는 다음과 같습니다:
다음 SQL 문은 UNION ALL을 사용하여 "Websites"와 "apps" 테이블에서 선택합니다:모든중국(CN)의 데이터(중복 값도 포함):
SELECT country, name FROM Websites WHERE country='CN' UNION ALL SELECT country, app_name FROM apps WHERE country='CN' ORDER BY country;
위 SQL 실행 결과는 다음과 같습니다: