>데이터 베이스 >SQL >SQL에서 Union과 Union의 차이점

SQL에서 Union과 Union의 차이점

下次还敢
下次还敢원래의
2024-05-02 02:57:17900검색

UNION은 고유한 행만 반환하는 반면 UNION ALL은 중복 행을 포함합니다. UNION은 병합 전에 중복을 제거하지만 UNION ALL은 행을 중복 제거하지 않습니다.

SQL에서 Union과 Union의 차이점

SQL에서 UNION과 UNION ALL의 차이점

UNION과 UNION ALL은 두 개 이상의 테이블에서 행을 병합하는 데 사용되는 SQL 연산자입니다. 그러나 중복 행을 처리하는 방법에는 근본적인 차이점이 있습니다.

UNION

  • 결과 테이블에서 고유한(중복되지 않은) 행만 반환합니다.
  • 테이블을 병합하기 전에 각 테이블의 행 중복을 제거합니다.
  • 테이블에 중복된 행이 있으면 결과 테이블에 한 번만 표시됩니다.

UNION ALL

  • 중복 행을 포함하여 모든 행을 반환합니다.
  • 개별 테이블의 행을 중복 제거하지 않습니다.
  • 테이블에 중복된 행이 있으면 결과 테이블에 여러 번 표시됩니다.

아래와 같이 두 개의 테이블 T1과 T2가 있다고 가정합니다.

<code>T1:
+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 3  | Mary |
+----+----+

T2:
+----+----+
| ID | Name |
+----+----+
| 2  | Susan |
| 4  | Bob |
+----+----+</code>

UNION 연산자를 사용하여 이 두 테이블을 병합하면:

<code>SELECT * FROM T1 UNION SELECT * FROM T2;</code>

결과는 다음과 같습니다.

<code>+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 3  | Mary |
| 4  | Bob |
+----+----+</code>

여기서 중복 행( ID = 2, 이름 = Susan)이 삭제되었습니다.

UNION ALL 연산자를 사용하여 이 두 테이블을 병합하는 경우:

<code>SELECT * FROM T1 UNION ALL SELECT * FROM T2;</code>

결과는 다음과 같습니다.

<code>+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 2  | Susan |
| 3  | Mary |
| 4  | Bob |
+----+----+</code>

중복 행이 이미 결과에 포함되어 있습니다.

위 내용은 SQL에서 Union과 Union의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.