programing

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

lovejava 2023. 6. 3. 07:51

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

사이의 차이점은 무엇입니까?JOIN그리고.UNION예를 들어봐도 될까요?

UNION쿼리에서 줄을 서로 이어 넣는 동안JOIN데카르트 제품을 만들고 하위 집합을 만듭니다. 완전히 다른 작업입니다.UNION:

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

로 의유한사예한소사예▁of를 들 수 있습니다.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)

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

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

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

유니온 예:

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사실입니다.

두 가지 모두에 대해 동일한 도식적인 설명을 볼 수 있지만, 이것들은 완전히 혼란스럽습니다.

유니온의 경우:

여기에 이미지 설명 입력

조인의 경우:

여기에 이미지 설명 입력

가입:

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

유니온:

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

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

조인을 사용하면 유사한 데이터를 다른 테이블에 연결할 수 있습니다.

유니온은 서로 다른 두 쿼리의 결과를 단일 레코드 집합으로 반환합니다.

유니언은 두 개의 쿼리를 하나처럼 만듭니다.조인은 단일 쿼리 문에서 두 개 이상의 테이블을 검사하기 위한 것입니다.

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

간단히 말해서 조인은 데이터를 새 열로 결합합니다.두 테이블이 함께 결합된 경우 첫 번째 테이블의 데이터가 같은 행에 있는 두 번째 테이블의 열 옆에 한 열 집합으로 표시됩니다.

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

유니언은 결과를 병합합니다(SQL Server는 확실히 병합됩니다)(기능 또는 버그?).

select 1 as id, 3 as value
union
select 1 as id, 3 as value

id,값

1,3

select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id

id,value,id,value

1,3,1,3

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

  2. SQL UNION 연산자는 두 개 이상의 SELECT 문 결과를 결합합니다.UNION 내의 각 SELECT 문은 동일한 수의 열을 가져야 합니다.열에도 유사한 데이터 유형이 있어야 합니다.또한 각 SELECT 문의 열은 순서가 같아야 합니다.

예: 표 1 고객 / 표 2 주문

내부 결합:

SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS

INNER JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; 

조합:

SELECT ID, NAME, AMOUNT, DATE

FROM CUSTOMERS

LEFT JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID 
UNION
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS

RIGHT JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; 

Union Operation은 의 Vertical Aggregate의 결합된 결과이고 Join Operation은 열의 Horizontal Aggregate의 결합된 결과입니다.

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

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

여기와 여기를 참고하세요.예를 들어 더 나은 설명이 있습니다.

우싱 유니온

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

유니온 예:
선택121 AS [칼럼1], 221 AS [칼럼2]유니온선택 321 AS [칼럼1], 422 AS [칼럼2]
출력:
1열 2열-------------------121          221321          422

JOIN 사용 중

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

가입 예:
a를 선택합니다.열 1, b.칼럼 2 TblA에서 내부 접합 TblB 보나.ID = b.id

추상적으로 두 개의 테이블 또는 결과 집합이 결합된다는 점에서 유사하지만 UNION은 실제로 동일한 수의 열을 가진 결과 집합과 유사한 데이터 유형을 가진 열을 결합하는 데 사용됩니다.구조가 동일하며 새 행만 추가됩니다.

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

저는 일반적인 차이를 다음과 같이 생각하고 싶습니다.

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

언급URL : https://stackoverflow.com/questions/905379/what-is-the-difference-between-join-and-union