SQL 시작하기 튜토리얼 매...로그인
SQL 시작하기 튜토리얼 매뉴얼
작가:php.cn  업데이트 시간:2022-04-12 14:15:40

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 연산자는 다른 값을 선택합니다. 중복값이 허용된다면 UNION ALL을 사용하세요.

SQL UNION ALL 구문

SELECT column_name FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

참고: UNION 결과 집합의 열 이름은 항상 테이블의 첫 번째 SELECT 문과 동일합니다. UNION 열 이름입니다.


데모 데이터베이스

이 튜토리얼에서는 PHP 샘플 데이터베이스를 사용합니다.

다음은 "Websites" 테이블에서 선택된 데이터입니다:

+----+---------------+-- - ------------+-------+---------+
| 이름 | 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초)

SQL UNION 예

다음 SQL 문은 "Websites" 및 "apps" 테이블에서 모든

다른국가(다른 값만)를 선택합니다.

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
위 SQL을 실행한 결과는 다음과 같습니다.

참고: UNION을 사용하여 두 테이블에 모든 국가를 나열할 수는 없습니다. 일부 웹사이트와 앱이 동일한 국가에 속해 있는 경우 각 국가는 한 번만 나열됩니다. UNION은 고유한 값만 선택합니다. 중복된 값을 선택하려면 UNION ALL을 사용하세요!


SQL UNION ALL 예

다음 SQL 문은 UNION ALL을 사용하여 "Websites" 및 "apps" 테이블에서

모든 국가를 선택합니다(또한 중복 값):

인스턴스

웹사이트에서 국가 선택
UNION ALL
앱에서 국가 선택
ORDER BY country;
위 SQL을 실행한 결과는 다음과 같습니다.



SQL UNION ALL WITH WHERE

다음 SQL 문은 UNION ALL을 사용하여 모든 중국(CN) 데이터를 선택합니다(중복 값도 있음).

인스턴스

                    웹사이트에서 국가, 이름 선택
WHERE 국가='CN'
UNION ALL
SELECT 국가, 앱_이름 FROM 앱
WHERE 국가='CN'
ORDER BY country;

위 SQL을 실행한 결과는 다음과 같습니다.