SQL 유니온
SQL UNION 연산자는 두 개 이상의 SELECT 문의 결과를 결합합니다.
SQL UNION 연산자
UNION 연산자는 두 개 이상의 SELECT 문의 결과 집합을 병합하는 데 사용됩니다.
UNION 내부의 각 SELECT 문에는 동일한 수의 열이 있어야 합니다. 열의 데이터 유형도 유사해야 합니다. 또한 각 SELECT 문의 열 순서는 동일해야 합니다.
SQL UNION 구문
SELECT column_name FROM table1
UNION
SELECT column_name( s) FROM table2;
UNION
SELECT column_name( s) FROM table2;
참고: 기본적으로 UNION 연산자는 다른 값을 선택합니다. 중복값이 허용된다면 UNION ALL을 사용하세요.
SQL UNION ALL 구문
SELECT column_name FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
UNION ALL
SELECT column_name(s) FROM table2;
참고: UNION 결과 집합의 열 이름은 항상 테이블의 첫 번째 SELECT 문과 동일합니다. UNION 열 이름입니다.
데모 데이터베이스
이 튜토리얼에서는 PHP 샘플 데이터베이스를 사용합니다.
다음은 "Websites" 테이블에서 선택된 데이터입니다:
+----+---------------+-- - ------------+-------+---------+
| 이름 | URL | 1 | 미국 |
| 2 | 타오바오 |
| 3 | CN |
| 4 | 웨이보 |
| 페이스북 | 7 | 스택오버플로우 | http://stackoverflow.com/ | 0 |
+----+-------------- -- -----+------+---------+
SQL UNION 예다음 SQL 문은 "Websites" 및 "apps" 테이블에서 모든
SQL UNION ALL 예다음 SQL 문은 UNION ALL을 사용하여 "Websites" 및 "apps" 테이블에서
| 이름 | URL | 1 | 미국 |
| 2 | 타오바오 |
| 3 | CN |
| 4 | 웨이보 |
| 페이스북 | 7 | 스택오버플로우 | http://stackoverflow.com/ | 0 |
+----+-------------- -- -----+------+---------+
다음은 "apps" 앱의 데이터입니다:
mysql> SELECT * FROM apps;
+----+------------ -+ -------------+---------+
| 아이디 | |
+----+------------+------------+- --- -----+
| 1 | QQ 앱 | http://im.qq.com/ | 웨이보 앱 | |
| 3 | 타오바오 앱 | https://www.taobao.com/ |
+----+------------+--- - ----+---------+
3행 세트(0.00초)
+----+------------ -+ -------------+---------+
| 아이디 | |
+----+------------+------------+- --- -----+
| 1 | QQ 앱 | http://im.qq.com/ | 웨이보 앱 | |
| 3 | 타오바오 앱 | https://www.taobao.com/ |
+----+------------+--- - ----+---------+
3행 세트(0.00초)
SQL UNION 예다음 SQL 문은 "Websites" 및 "apps" 테이블에서 모든
다른국가(다른 값만)를 선택합니다.
예
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
위 SQL을 실행한 결과는 다음과 같습니다. SELECT country FROM apps
ORDER BY country;
참고: UNION을 사용하여 두 테이블에 모든 국가를 나열할 수는 없습니다. 일부 웹사이트와 앱이 동일한 국가에 속해 있는 경우 각 국가는 한 번만 나열됩니다. UNION은 고유한 값만 선택합니다. 중복된 값을 선택하려면 UNION ALL을 사용하세요!
SQL UNION ALL 예다음 SQL 문은 UNION ALL을 사용하여 "Websites" 및 "apps" 테이블에서
모든 국가를 선택합니다(또한 중복 값):
인스턴스
웹사이트에서 국가 선택
UNION ALL
앱에서 국가 선택
ORDER BY country;
위 SQL을 실행한 결과는 다음과 같습니다. 앱에서 국가 선택
ORDER BY country;
SQL UNION ALL WITH WHERE
다음 SQL 문은 UNION ALL을 사용하여 모든 중국(CN) 데이터를 선택합니다(중복 값도 있음).
인스턴스
웹사이트에서 국가, 이름 선택
WHERE 국가='CN'
UNION ALL
SELECT 국가, 앱_이름 FROM 앱
WHERE 국가='CN'
ORDER BY country;
WHERE 국가='CN'
UNION ALL
SELECT 국가, 앱_이름 FROM 앱
WHERE 국가='CN'
ORDER BY country;
위 SQL을 실행한 결과는 다음과 같습니다.