English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite UNION 문

SQLite UNION절/연산자는 두 개나 더 많은 SELECT 문의 결과를 결합하며 중복된 행을 반환하지 않습니다.

UNION를 사용하려면 각 SELECT는 같은 수의 선택된 열, 같은 수의 열 표현식, 같은 데이터 타입을 가지고 있어야 하며 같은 순서를 가지지만 길이는 같지 않아도 됩니다.

문법

다음은}}UNION기본 문법.

SELECT 컬럼1 [, 컬럼2 ]
FROM 테이블1 [, 테이블2 ]
[WHERE 조건]
UNION
SELECT 컬럼1 [, 컬럼2 ]
FROM 테이블1 [, 테이블2 ]
[WHERE 조건]

여기서 주어진 조건은 요청에 따라 어떤 주어진 표현식이든 될 수 있습니다.

예제

다음 두 테이블을 고려해 보겠습니다, (a) COMPANY 테이블은 다음과 같습니다:

sqlite> select * from COMPANY;
ID  NAME  AGE  ADDRESS SALARY
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27          Texas       85000.0
6           Kim                   22          South-Hall  45000.0
7           James                 24          Houston     10000.0

(b) 또 다른 테이블은 부서(DEPARTMENT)입니다--

ID  DEPT  EMP_ID
----------  --------------------  ----------
1           IT Billing            1
2           Engineering           2
3           Finance               7
4           Engineering           3
5           Finance               4
6           Engineering           5
7           Finance               6

이제, SELECT 문과 UNION 절을 사용하여 두 테이블을 다음과 같이 조인해 보겠습니다:

sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID
         
         UNION
         
         SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID;

이는 다음과 같은 결과를 생성합니다.

EMP_ID NAME  DEPT
----------  --------------------  ----------
1           Paul  IT Billing
2           Allen                 Engineering
3           Teddy                 Engineering
4           Mark                  Finance
5           David                 Engineering
6           Kim                   Finance
7           James                 Finance

UNION ALL 절

UNION ALL 연산자는 두 SELECT 문의 결과를, 중복 행을 포함하여 결합합니다.

UNION에 적용되는 규칙은 UNION ALL 연산자에도 적용됩니다.

문법

다음은 UNION ALL의 기본 문법입니다.UNION ALL

SELECT 컬럼1 [, 컬럼2 ]
FROM 테이블1 [, 테이블2 ]
[WHERE 조건]
UNION ALL
SELECT 컬럼1 [, 컬럼2 ]
FROM 테이블1 [, 테이블2 ]
[WHERE 조건]

여기서 주어진 조건은 요청에 따라 어떤 주어진 표현식이든 될 수 있습니다.

예제

이제, SELECT 문에서 위 두 테이블을 다음과 같이 조인해 보겠습니다:

sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID
         
         UNION ALL
         SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID;

이는 다음과 같은 결과를 생성합니다.

EMP_ID NAME  DEPT
----------  --------------------  ----------
1           Paul  IT Billing
2           Allen                 Engineering
3           Teddy                 Engineering
4           Mark                  Finance
5           David                 Engineering
6           Kim                   Finance
7           James                 Finance
1           Paul  IT Billing
2           Allen                 Engineering
3           Teddy                 Engineering
4           Mark                  Finance
5           David                 Engineering
6           Kim                   Finance
7           James                 Finance