답변:
UNION
JOIN
카티 전 곱을 만들고 하위 집합 (완전히 다른 작업)을 생성하는 동시에 쿼리에서 줄을 연결합니다 . 간단한 예 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)
UNION-JOIN
표준 SQL에서 무엇 을 어떻게 달성 할 수 있는지 알려 주 시겠습니까? Maria DB에는 명령 union join
이 있지만 다른 데이터베이스에는 없습니다. 감사.
조인 및 유니온을 사용하여 하나 이상의 테이블의 데이터를 결합 할 수 있습니다. 차이점은 데이터가 결합되는 방식에 있습니다.
간단히 말해 조인은 데이터를 새로운 열로 결합합니다 . 두 개의 테이블이 결합 된 경우 첫 번째 테이블의 데이터는 동일한 행의 두 번째 테이블 열과 함께 한 열 세트에 표시됩니다.
결합은 데이터를 새로운 행으로 결합합니다. 두 테이블이 "결합"된 경우 첫 번째 테이블의 데이터는 한 행 세트에 있고 두 번째 테이블의 데이터는 다른 세트에 있습니다. 행의 결과는 동일합니다.
다음은 조인의 시각적 묘사입니다. 표 A와 B의 열은 단일 결과로 결합됩니다.
결과의 각 행에는 BOTH 테이블 A와 B의 열이 포함됩니다. 한 테이블의 열이 다른 테이블의 열과 일치하면 행이 만들어집니다. 이 일치를 조인 조건이라고합니다.
따라서 조인은 값을 찾고 결과에 포함시키는 데 정말 좋습니다. 이는 일반적으로 비정규 화 (정규화 취소)의 결과이며, 한 테이블에서 외래 키를 사용하여 다른 키의 기본 키를 사용하여 열 값을 조회합니다.
이제 위의 묘사를 노조의 묘사와 비교하십시오. 합집합에서 결과 내의 각 행은 한 테이블 또는 다른 테이블에 있습니다. 통합에서는 열이 결합되어 결과를 만들지 않고 행이 결합됩니다.
조인과 공용체는 하나 이상의 테이블의 데이터를 단일 결과로 결합하는 데 사용할 수 있습니다. 그들은 둘 다 다른 방식으로 진행합니다. 조인은 다른 테이블의 열을 결합하는 데 사용되는 반면, 결합은 행을 결합하는 데 사용됩니다.
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 인 두 테이블의 모든 행이 출력됩니다 .
조인은 다른 테이블의 이름이 같거나 다른 열을 표시하는 데 사용됩니다. 표시된 출력에는 모든 열이 개별적으로 표시됩니다. 즉, 열이 나란히 정렬됩니다.
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
아이디, 값, 아이디, 값
1,3,1,3
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;
우싱 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