logo

SQL JOIN 유형

SQL 조인

SQL 조인은 정의된 조건에 따라 두 개 이상의 테이블에서 데이터(행 또는 열)를 가져오거나 결합하는 데 사용됩니다.

표 1: 순서

주문 아이디 고객 ID 주문 이름 상품명
12025 101 베드로 알파벳
12030 105 로버트 XYX
12032 110 제임스 XYZ
12034 115 앤드류 PQR
12035 120 매튜 AAA

표 2: 고객

고객 ID 고객 이름 국가
100 지저분한 맥시코
101 왕자 대만
103 마리아 페르난데스 칠면조
105 여자 이름 파리
110 파프 족제비 인도네시아
120 로마 로켓 러시아

이제 테이블이 2개 남았네요 주문하다 그리고 고객 . 이있다 고객 ID 두 테이블의 공통 열입니다. 따라서 두 테이블 모두에서 일치 항목의 레코드를 선택하기 위한 일반 관계를 정의하는 SQL 쿼리를 작성합니다.

 Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID; 

위 내용을 실행한 후 SQL 쿼리하면 다음과 같은 출력이 생성됩니다.

주문 아이디 고객 이름 국가 상품명
12025 왕자 대만 알파벳
12030 여자 이름 파리 XYX
12032 파프 족제비 인도네시아 XYZ
12035 로마 로켓 러시아 AAA

SQL 조인 유형

SQL에는 다양한 유형의 조인이 사용됩니다.

  1. 내부 조인/단순 조인
  2. 왼쪽 외부 조인/왼쪽 조인
  3. 오른쪽 외부 조인/오른쪽 조인
  4. 완전 외부 조인
  5. 교차 조인
  6. 셀프 조인

내부 조인

내부 조인은 정의된 조건이 SQL에서 유효한 경우 두 테이블 모두에서 일치하는 모든 행이나 열을 선택하는 데 사용됩니다.

통사론:

 Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column; 

Venn 다이어그램을 통해 내부 조인을 다음과 같이 표현할 수 있습니다.

SQL JOIN 유형

표 1: 학생

학생 아이디 학생 이름 주제 교사ID
101 알렉산드라 컴퓨터 과학 T201
102 찰스 경제학 T202
103 톰 크루즈 컴퓨터 과학 T201
104 아론 핀치 전자제품 T203
105 시드 바조프 웹 디자인 T204
106 크리스토퍼 영문학 T205
107 패션 디자이너 T206

표 2: 교사

교사ID 선생님 성함 교사이메일
T201 데이비스 씨 [이메일 보호됨]
T202 조나스 부인 [이메일 보호됨]
T201 데이비스 씨 [이메일 보호됨]
T204 로페즈 부인 [이메일 보호됨]
T205 와일리 부인 [이메일 보호됨]
T206 미스터 빈 [이메일 보호됨]

두 개의 테이블이 있습니다. 재학생 그리고 교사 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 내부 조인 다음과 같이:

 Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID; 

쿼리를 실행하면 아래 테이블이 생성됩니다.

SQL JOIN 유형

자연 조인

동일한 컬럼 이름을 기준으로 두 개 이상의 테이블을 조인하고 두 테이블에 동일한 데이터 유형이 존재하는 내부 유형 유형입니다.

통사론:

 Select * from tablename1 Natural JOIN tablename_2; 

두 개의 테이블이 있습니다. 재학생 그리고 교사 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 자연 조인 다음과 같이:

 Select * from Students Natural JOIN Teachers; 

위 쿼리를 실행하면 다음 테이블이 생성됩니다.

SQL JOIN 유형

왼쪽 조인

그만큼 왼쪽 조인 왼쪽 테이블(table1)에서 모든 레코드를 검색하고 오른쪽 테이블(table2)에서 일치하는 행 또는 열을 검색하는 데 사용됩니다. 두 테이블 모두 일치하는 행이나 열이 없으면 NULL을 반환합니다.

통사론:

 Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name; 

다음과 같이 Venn 다이어그램을 통해 왼쪽 조인을 나타낼 수도 있습니다.

SQL JOIN 유형

참고: 일부 데이터베이스에서는 LEFT JOIN을 LEFT OUTER JOIN이라고도 합니다.

표 1: 제품_세부정보

제품 ID 상품명
Pro101 랩탑 56000
Pro102 이동하는 38000
Pro103 헤드폰 5000
Pro104 텔레비전 25000
Pro105 아이패드 60000

표 2: 고객_세부사항

배열 목록을 정렬하다
고객 이름 고객주소 고객 연령 제품 ID
마틴 구틸 미국 샌프란시스코 26 Pro101
제임스 호주 29 Pro103
암바티 윌리엄슨 뉴질랜드 27 Pro102
조프라 아처 남아프리카 24 Pro105
케이트 와일리 호주 이십 Pro103

두 개의 테이블이 있습니다. 제품 세부 정보 그리고 고객 정보 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 왼쪽 조인 다음과 같이:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

쿼리를 실행하면 다음 테이블이 생성됩니다.

SQL JOIN 유형

그만큼 바로 가입 오른쪽 테이블(table2)에서 모든 레코드를 검색하고 왼쪽 테이블(table1)에서 일치하는 행 또는 열을 검색하는 데 사용됩니다. 두 테이블 모두 일치하는 행이나 열이 없으면 NULL을 반환합니다.

통사론:

 Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name; 

다음과 같이 Venn 다이어그램을 통해 올바른 조인을 나타낼 수도 있습니다.

SQL JOIN 유형

참고: 일부 데이터베이스에서는 RIGHT JOIN을 RIGHT OUTER JOIN이라고도 합니다.

표 1: 제품_세부정보

ID 상품명
Pro101 랩탑 56000
Pro102 이동하는 38000
Pro103 헤드폰 5000
Pro104 텔레비전 25000
Pro105 아이패드 60000

표 2: 고객_세부사항

고객 이름 고객주소 고객 연령 제품 ID
마틴 구틸 미국 샌프란시스코 26 Pro101
제임스 호주 29 Pro103
암바티 윌리엄슨 뉴질랜드 27 Pro102
조프라 아처 남아프리카 24 Pro105
전조 영국 29 Pro107
모건 영국 이십 Pro108

두 개의 테이블이 있습니다. 제품 세부 정보 그리고 고객 정보 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 바로 가입 다음과 같이:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

쿼리를 실행하면 아래 테이블이 생성됩니다.

자식 풀 구문
SQL JOIN 유형

전체 조인 또는 전체 외부 조인:

둘 다의 조합 결과 집합입니다. 왼쪽 조인 그리고 바로 가입 . 조인된 테이블은 두 테이블의 모든 레코드를 반환하며, 테이블에 일치하는 항목이 없으면 NULL이 됩니다. 그것은 또한 전체 외부 조인 .

통사론:

 Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name; 

또는, 전체 외부 조인

 Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name; 

Venn 다이어그램을 통해 다음과 같이 완전 외부 조인을 표현할 수도 있습니다.

SQL JOIN 유형

표 1: 제품_세부정보

ID 상품명
Pro101 랩탑 56000
Pro102 이동하는 38000
Pro103 헤드폰 5000
Pro104 텔레비전 25000
Pro105 아이패드 60000

표 2: 고객_세부사항

고객 이름 고객주소 고객 연령 제품 ID
마틴 구틸 미국 샌프란시스코 26 Pro101
제임스 호주 29 Pro103
암바티 윌리엄슨 뉴질랜드 27 Pro102
조프라 아처 남아프리카 24 Pro105
전조 영국 29 Pro107
모건 영국 이십 Pro108

두 개의 테이블이 있습니다. 제품 세부 정보 그리고 고객 정보 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 가득한 다음과 같이 가입하세요:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

쿼리를 실행하면 아래 테이블이 생성됩니다.

SQL JOIN 유형

참고: MySQL은 FULL JOIN 개념을 지원하지 않으므로 UNION ALL 절을 사용하여 두 테이블을 결합할 수 있습니다.

다음은 구문입니다. 유니온 올 테이블을 결합하는 절입니다.

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID 

SQL JOIN 유형

교차 조인

그것은 또한로 알려져 있습니다 데카르트 조인 , 두 개 이상의 조인된 테이블의 데카르트 곱을 반환합니다. 그만큼 교차 조인 첫 번째 테이블의 각 행을 두 번째 테이블 행과 병합하는 테이블을 생성합니다. CROSS JOIN에는 어떤 조건도 포함할 필요가 없습니다.

통사론:

 Select * from table_1 cross join table_2; 

또는,

 Select column1, column2, column3 FROM table_1, table_2; 

표 1: 제품_세부정보

ID 상품명
Pro101 랩탑 56000
Pro102 이동하는 38000
Pro103 헤드폰 5000
Pro104 텔레비전 25000
Pro105 아이패드 60000

표 2: 고객_세부사항

고객 이름 고객주소 고객 연령 제품 ID
마틴 구틸 미국 샌프란시스코 26 Pro101
제임스 호주 29 Pro103
암바티 윌리엄슨 뉴질랜드 27 Pro102
조프라 아처 남아프리카 24 Pro105
전조 영국 29 Pro107
모건 영국 이십 Pro108

두 개의 테이블이 있습니다. 제품 세부 정보 그리고 고객 정보 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 가득한 다음과 같이 가입하세요:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details; 

쿼리를 실행하면 아래 테이블이 생성됩니다.

SQL JOIN 유형

셀프 조인

두 개의 테이블이 있으므로 스스로 조인하여 테이블을 생성하는 데 사용하는 SELF JOIN입니다. SQL 문에서 적어도 하나의 테이블에 임시 이름을 지정합니다.

통사론:

 Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition; 

1 번 테이블 그리고 Tbl2 동일한 테이블에 대한 두 개의 다른 테이블 별칭입니다.

표 1: 제품_세부정보

ID 상품명
Pro101 랩탑 56000
Pro102 이동하는 38000
Pro103 헤드폰 5000
Pro104 텔레비전 25000
Pro105 아이패드 60000

다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 셀프 조인 다음과 같이:

 Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>