English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 연산자는 두 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