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

PostgreSQL UNION 연산자

PostgreSQL UNION 연산자는 두 개나 많은 SELECT 문의 결과를 결합합니다.

UNION 연산자는 두 개나 많은 SELECT 문의 결과 집합을 결합합니다.

请注意,UNION 내부의 각 SELECT 문은 같은 수의 열을 가져야 합니다. 열도 유사한 데이터 타입을 가져야 합니다. 또한 각 SELECT 문의 열 순서는 같아야 합니다.

문법

UNIONS 기본 문법은 다음과 같습니다:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

여기의 조건문은 필요에 따라 어떤 표현식을 설정할 수 있습니다.

온라인 예제

COMPANY 테이블을 생성합니다(COMPANY SQL 파일 다운로드 ),데이터 내용은 다음과 같습니다:

w3codeboxdb# select * COMPANY에서 가져오기;
 id | 이름  | 나이 | 주소   | 급여
----+-------+-----+-----------+--------
  1 | 폴  |  32 | 캘리포니아|  20000
  2 | 알렌 |  25 | 텍사스     |  15000
  3 | 테디 |  23 | 노르웨이    |  20000
  4 | 마크  |  25 | 리치-문드 |  65000
  5 | 대비드 |  27 | 텍사스     |  85000
  6 | 김   |  22 | 서남-홀|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

DEPARTMENT 테이블을 생성합니다(DEPARTMENT SQL 파일 다운로드 ),데이터 내용은 다음과 같습니다:

w3codeboxdb=# SELECT * from 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
(7 rows)

지금, SELECT 문에서 UNION 절을 사용하여 두 테이블을 결합하는 예를 보여드립니다:

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
--------+-------+--------------
      5 | David | 엔지니어링
      6 | Kim   | 금융
      2 | Allen | 엔지니어링
      3 | Teddy | 엔지니어링
      4 | Mark  | 금융
      1 | Paul  | IT 비용
      7 | James | 금융
(7 rows)

UNION ALL 절

UNION ALL 연산자는 두 개의 SELECT 문을 연결할 수 있으며, 일반적으로 UNION 연산자는 다른 값을 선택합니다. 중복된 값이 허용되는 경우 UNION ALL을 사용하세요.

문법

UINON ALL 절 기본 문법如下:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

여기의 조건문은 필요에 따라 어떤 표현식을 설정할 수 있습니다.

온라인 예제

지금, 위에서 언급한 두 테이블을 SELECT 문으로 UNION ALL 절을 사용하여 결합해 보겠습니다:

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 비용
      2 | Allen | 엔지니어링
      7 | James | 금융
      3 | Teddy | 엔지니어링
      4 | Mark  | 금융
      5 | David | 엔지니어링
      6 | Kim   | 금융
      1 | Paul  | IT 비용
      2 | Allen | 엔지니어링
      7 | James | 금융
      3 | Teddy | 엔지니어링
      4 | Mark  | 금융
      5 | David | 엔지니어링
      6 | Kim   | 금융
(14 rows)