JOIN과 UNION의 차이점은 무엇입니까?


252

차이점은 무엇이며 JOIN그리고 UNION? 예를 들어 주시겠습니까?


MariaDB 와 같은 최신 DBS 는 UNION JOIN 명령을 구현합니다. 이 명령 은 SQL & nbsp; 3 명령이지만 잘 알려져 있거나 사용되지 않았습니다. UNION JOIN 에 대해 자세히 알아보십시오 .
Auston

답변:


301

UNIONJOIN카티 전 곱을 만들고 하위 집합 (완전히 다른 작업)을 생성하는 동시에 쿼리에서 줄을 연결합니다 . 간단한 예 UNION:

mysql> SELECT 23 AS bah
    -> UNION
    -> SELECT 45 AS bah;
+-----+
| bah |
+-----+
|  23 | 
|  45 | 
+-----+
2 rows in set (0.00 sec)

비슷한 사소한 예 JOIN:

mysql> SELECT * FROM 
    -> (SELECT 23 AS bah) AS foo 
    -> JOIN 
    -> (SELECT 45 AS bah) AS bar
    -> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
|  23 |  45 | 
+-----+-----+
1 row in set (0.01 sec)

6
UNION-JOIN표준 SQL에서 무엇 을 어떻게 달성 할 수 있는지 알려 주 시겠습니까? Maria DB에는 명령 union join이 있지만 다른 데이터베이스에는 없습니다. 감사.
Erran Morad

72

조인 및 유니온을 사용하여 하나 이상의 테이블의 데이터를 결합 할 수 있습니다. 차이점은 데이터가 결합되는 방식에 있습니다.

간단히 말해 조인은 데이터를 새로운 열로 결합합니다 . 두 개의 테이블이 결합 된 경우 첫 번째 테이블의 데이터는 동일한 행의 두 번째 테이블 열과 함께 한 열 세트에 표시됩니다.

결합은 데이터를 새로운 행으로 결합합니다. 두 테이블이 "결합"된 경우 첫 번째 테이블의 데이터는 한 행 세트에 있고 두 번째 테이블의 데이터는 다른 세트에 있습니다. 행의 결과는 동일합니다.

다음은 조인의 시각적 묘사입니다. 표 A와 B의 열은 단일 결과로 결합됩니다.

여기에 이미지 설명을 입력하십시오

결과의 각 행에는 BOTH 테이블 A와 B의 열이 포함됩니다. 한 테이블의 열이 다른 테이블의 열과 일치하면 행이 만들어집니다. 이 일치를 조인 조건이라고합니다.

따라서 조인은 값을 찾고 결과에 포함시키는 데 정말 좋습니다. 이는 일반적으로 비정규 화 (정규화 취소)의 결과이며, 한 테이블에서 외래 키를 사용하여 다른 키의 기본 키를 사용하여 열 값을 조회합니다.

이제 위의 묘사를 노조의 묘사와 비교하십시오. 합집합에서 결과 내의 각 행은 한 테이블 또는 다른 테이블에 있습니다. 통합에서는 열이 결합되어 결과를 만들지 않고 행이 결합됩니다.

여기에 이미지 설명을 입력하십시오

조인과 공용체는 하나 이상의 테이블의 데이터를 단일 결과로 결합하는 데 사용할 수 있습니다. 그들은 둘 다 다른 방식으로 진행합니다. 조인은 다른 테이블의 열을 결합하는 데 사용되는 반면, 결합은 행을 결합하는 데 사용됩니다.

출처


4
이것은 멋진 시각적 예입니다. 나는 다른 답변을 이해 한 것이 확실하지만 이것이 완전히 해결되었습니다.
seadoggie01

기술적으로 말하면, 조인 예제의 경우 결과에 대한 열이 10 개가 아니어야합니까?
Bharath Ram

60

UNION 은 두 개 이상의 쿼리 결과를 통합의 모든 쿼리에 속하는 모든 행을 포함하는 단일 결과 집합으로 결합합니다.

JOINs 를 사용 하면 테이블 간의 논리적 관계를 기반으로 둘 이상의 테이블에서 데이터를 검색 할 수 있습니다. 조인은 SQL이 한 테이블의 데이터를 사용하여 다른 테이블의 행을 선택하는 방법을 나타냅니다.

UNION 연산은 두 테이블의 열을 결합하는 JOIN을 사용하는 것과 다릅니다.

UNION 예 :

SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]

산출:

Column1    Column2
-------------------
1          2
3          4

가입 예 :

SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId

조건 a.Id = b.AFKId이 true 인 두 테이블의 모든 행이 출력됩니다 .


조인은 하나 이상의 테이블에서 데이터를 검색 할 수 있습니다. 꼭 두개
Kennet Celeste

51

두 가지 모두에 대해 동일한 회로도 설명을 볼 수 있지만 완전히 혼동됩니다.

UNION의 경우 :

여기에 이미지 설명을 입력하십시오

가입 :

여기에 이미지 설명을 입력하십시오


9
이러한 이미지는 그 의미 FULL OUTER JOIN와 동일 UNION어떤 차이가 있습니까
icc97

1
이 답변은 그 이미지가 혼란 스럽지만 (어떤 IMO인지) 원래 질문에 대한 이유를 설명하거나 설명하지 않습니다.
Josh D.

1
다이어그램이있는 각 이미지는 상황을 완벽하게 설명합니다. 모든 다이어그램을 병합 할 수있는 것보다 단일 이미지가 없습니다. 더 혼란 스러울 것입니다.
자바 메인

41

붙다:

조인은 다른 테이블의 이름이 같거나 다른 열을 표시하는 데 사용됩니다. 표시된 출력에는 모든 열이 개별적으로 표시됩니다. 즉, 열이 나란히 정렬됩니다.

노동 조합:

UNION 세트 연산자는 동일한 데이터 유형의 열이있는 두 테이블의 데이터를 결합하는 데 사용됩니다. UNION이 수행되면 두 테이블의 데이터가 동일한 데이터 유형을 갖는 단일 열에 수집됩니다.

예를 들면 다음과 같습니다.

아래 표시된 두 테이블을 참조하십시오.

Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG

이제 JOIN 유형을 수행하기 위해 쿼리가 아래에 표시됩니다.

SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON (t1.manufacturer_id =
t2.manufacturer_id);

articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG

그것은 조인입니다.

UNION은 동일한 양과 유형의 열을 사용하여 테이블 또는 결과 집합을 가져 와서 테이블 / 결과에 함께 추가 함을 의미합니다. 이 예를보십시오 :

Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4

SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007

articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4

21

그들은 완전히 다른 것입니다.

A는 가입 당신이 다른 테이블에 유사한 데이터를 관련 수 있습니다.

공용체는 서로 다른 두 쿼리의 결과를 단일 레코드 세트로 반환합니다.


9

Union은 두 쿼리를 하나처럼 보이게합니다. 조인은 단일 쿼리 문에서 둘 이상의 테이블을 검사하기위한 것입니다.


3

조인 및 공용체를 사용하여 하나 이상의 테이블의 데이터를 결합 할 수 있습니다. 차이점은 데이터가 결합되는 방식에 있습니다.

간단히 말해 조인은 데이터를 새로운 열로 결합합니다. 두 테이블이 함께 결합 된 경우 첫 번째 테이블의 데이터는 동일한 행의 두 번째 테이블 열과 함께 한 열 세트에 표시됩니다.

유니언은 데이터를 새로운 행으로 결합합니다. 두 테이블이 "결합"된 경우 첫 번째 테이블의 데이터는 한 행 세트에 있고 두 번째 테이블의 데이터는 다른 세트에 있습니다. 행의 결과는 동일합니다.



0

1. SQL 조인 절은 데이터베이스에서 둘 이상의 테이블의 레코드를 결합하는 데 사용됩니다. JOIN은 각 테이블에 공통적 인 값을 사용하여 두 테이블의 필드를 결합하는 수단입니다.

2. SQL UNION 연산자는 둘 이상의 SELECT 문의 결과를 결합합니다. UNION 내의 각 SELECT 문은 동일한 수의 열을 가져야합니다. 열의 데이터 형식도 비슷해야합니다. 또한 각 SELECT 문의 열 순서는 같아야합니다.

예 : 표 1 고객 / 표 2 주문

내부 조인 :

날짜, ID, 이름, 날짜를 선택하십시오.

고객으로부터


내부 가입 주문


ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

노동 조합:

날짜, ID, 이름, 날짜를 선택하십시오.


고객으로부터


왼쪽 가입 주문


ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

노동 조합

고객의 ID, 이름, 금액, 날짜 선택


올바른 가입 주문


ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;


0

우싱 UNION

UNION은 두 개 이상의 쿼리 결과를 단일 결과 집합으로 결합하여 통합의 모든 쿼리에 속하는 모든 행을 포함합니다.

UNION 예 :
121 AS [열 1], 221 AS [열 2]로 선택
노동 조합
321 AS [열 1], 422 AS [열 2]로 선택
산출:

열 1 열 2
-------------------
121221
321 422

참여하기

JOIN을 사용하면 테이블 간의 논리적 관계를 기반으로 둘 이상의 테이블에서 데이터를 검색 할 수 있습니다.

가입 예 :
a. 열 1, b. TblA에서 열 2 a 내부 조인 TblB에서 b a. ID = b.id


-1

요약하면 두 테이블 또는 결과 집합이 결합된다는 점에서 비슷하지만 UNION은 실제로 동일한 열 수와 동일한 결과 집합을 COLUMNS HAVING SIMILAR DATA TYPES와 결합하는 데 사용됩니다. 구조는 동일하며 새 행만 추가됩니다.

조인에서는 공유 / 유사한 열이없는 데카르트 조인을 포함하여 가능한 구조와 테이블 / 결과 세트를 결합 할 수 있습니다.


-1

UNION 연산자는 둘 이상의 SELECT 문을 결합하기위한 것입니다.

JOIN은 각 테이블에서 내부, 외부, 왼쪽 또는 오른쪽 방법으로 행을 선택하기위한 것입니다.

여기여기를 참조 하십시오 . 예제를 통해 더 나은 설명이 있습니다.


-1

합집합 은 행 의 수직 집계의 결과이며 합집합은 열의 수평 집계의 결과입니다 .


-3

나는 일반적인 차이점을 다음과 같이 생각합니다.

  • JOINS 조인 테이블
  • UNION (모두)은 쿼리를 결합합니다.

1
이것은 질문을 제기합니다. 조인은 "조인"이라는 용어로 언급되고 연합은 설명 할 수없는 "결합"이라는 용어로 언급됩니다. 어쨌든 당신은 이것을 "유용한"만드는 투표율이 높은 10 살짜리 답변 외에 무엇을 추가 할 것이라고 생각하십니까? (수사학) 투표 화살표 마우스 오버 텍스트를 참조하십시오.
philipxy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.