MySQL UNION - 완전한 튜토리얼

연합이란 무엇입니까?

Union은 여러 SELECT 쿼리의 결과를 통합된 결과 집합으로 결합합니다.

이것이 작동하기 위한 유일한 요구 사항은 결합해야 하는 모든 SELECT 쿼리의 열 수가 동일해야 한다는 것입니다.

다음과 같이 두 개의 테이블이 있다고 가정합니다.

MySQL UNIONMySQL UNION

이제 DISTINCT를 사용하여 두 테이블을 결합하는 UNION 쿼리를 만들어 보겠습니다.

SELECT column1, column2 FROM `table1`
UNION DISTINCT
SELECT  column1,column2  FROM `table2`;

여기서 중복 행은 제거되고 고유한 행만 반환됩니다.

노동조합별

참고 : MySQL 아무것도 지정되지 않은 경우 UNION 쿼리를 실행할 때 DISTINCT 절을 기본값으로 사용합니다.

이제 ALL을 사용하여 두 테이블을 결합하는 UNION 쿼리를 만들어 보겠습니다.

SELECT `column1`,` column1` FROM `table1`
UNION ALL
SELECT ` column1`,` column1`  FROM `table2`;

여기에는 중복 행이 포함되어 있으며 ALL을 사용합니다.

유니온-모두

유니온을 사용하는 이유는 무엇입니까?

데이터베이스 설계에 결함이 있고 동일한 목적을 위해 두 개의 서로 다른 테이블을 사용하고 있다고 가정합니다. 새 테이블에 들어가지 않도록 중복 레코드를 생략하면서 이 두 테이블을 하나로 통합하려고 합니다. 이러한 경우에는 UNION을 사용할 수 있습니다.

제품 개요

  • UNION 명령은 둘 이상의 SELECT 쿼리 결과를 모든 선택 쿼리의 행을 포함하는 단일 쿼리로 결합하는 데 사용됩니다.
  • 열의 수와 데이터 유형 SELECT 문 UNION 명령이 작동하려면 동일해야 합니다.
  • DISTINCT 절은 UNION 쿼리 결과 집합에서 중복된 값을 제거하는 데 사용됩니다. MySQL 아무것도 지정되지 않은 경우 UNION 쿼리를 실행할 때 DISTINCT 절을 기본값으로 사용합니다.
  • ALL 절은 UNION 쿼리에서 중복된 행까지 모두 반환하는 데 사용됩니다.

실제 사례 MySQL 워크 벤치

myFlixDB에서는 결합할 수 있습니다.

Members 테이블의 member_number 및 full_names

영화 테이블의 movie_id 및 제목

다음 쿼리를 사용할 수 있습니다

SELECT `membership_number`,`full_names` FROM `members`
UNION
SELECT `movie_id`,`title` FROM `movies`;

위 스크립트를 실행하면 MySQL 워크 벤치 myflixdb에 대해 검색한 결과는 아래와 같습니다.

membership_number full_names
1 Janet Jones
2 Janet Smith Jones
3 Robert Phil
4 Gloria Williams
5 Leonard Hofstadter
6 Sheldon Cooper
7 Rajesh Koothrappali
8 Leslie Winkle
9 Howard Wolowitz
16 67% Guilty
6 Angels and Demons
4 Code Name Black
5 Daddy's Little Girls
7 Davinci Code
2 Forgetting Sarah Marshal
9 Honey mooners
19 movie 3
1 Pirates of the Caribean 4
18 sample movie
17 The Great Dictator
3 X-Men