MySQL UNION - 완전한 튜토리얼
연합이란 무엇입니까?
Union은 여러 SELECT 쿼리의 결과를 통합된 결과 집합으로 결합합니다.
이것이 작동하기 위한 유일한 요구 사항은 결합해야 하는 모든 SELECT 쿼리의 열 수가 동일해야 한다는 것입니다.
다음과 같이 두 개의 테이블이 있다고 가정합니다.
이제 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 |