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