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에는 다양한 유형의 조인이 사용됩니다.
내부 조인
내부 조인은 정의된 조건이 SQL에서 유효한 경우 두 테이블 모두에서 일치하는 모든 행이나 열을 선택하는 데 사용됩니다.
통사론:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Venn 다이어그램을 통해 내부 조인을 다음과 같이 표현할 수 있습니다.
표 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;
쿼리를 실행하면 아래 테이블이 생성됩니다.
자연 조인
동일한 컬럼 이름을 기준으로 두 개 이상의 테이블을 조인하고 두 테이블에 동일한 데이터 유형이 존재하는 내부 유형 유형입니다.
통사론:
Select * from tablename1 Natural JOIN tablename_2;
두 개의 테이블이 있습니다. 재학생 그리고 교사 테이블. 다음을 사용하여 테이블을 조인하는 SQL 쿼리를 작성해 보겠습니다. 자연 조인 다음과 같이:
Select * from Students Natural JOIN Teachers;
위 쿼리를 실행하면 다음 테이블이 생성됩니다.
왼쪽 조인
그만큼 왼쪽 조인 왼쪽 테이블(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 다이어그램을 통해 왼쪽 조인을 나타낼 수도 있습니다.
참고: 일부 데이터베이스에서는 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;
쿼리를 실행하면 다음 테이블이 생성됩니다.
RIGHT JOIN 또는 RIGHT 외부 조인:
그만큼 바로 가입 오른쪽 테이블(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 다이어그램을 통해 올바른 조인을 나타낼 수도 있습니다.
참고: 일부 데이터베이스에서는 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;
쿼리를 실행하면 아래 테이블이 생성됩니다.
자식 풀 구문
전체 조인 또는 전체 외부 조인:
둘 다의 조합 결과 집합입니다. 왼쪽 조인 그리고 바로 가입 . 조인된 테이블은 두 테이블의 모든 레코드를 반환하며, 테이블에 일치하는 항목이 없으면 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 다이어그램을 통해 다음과 같이 완전 외부 조인을 표현할 수도 있습니다.
표 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;
쿼리를 실행하면 아래 테이블이 생성됩니다.
참고: 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
교차 조인
그것은 또한로 알려져 있습니다 데카르트 조인 , 두 개 이상의 조인된 테이블의 데카르트 곱을 반환합니다. 그만큼 교차 조인 첫 번째 테이블의 각 행을 두 번째 테이블 행과 병합하는 테이블을 생성합니다. 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;
쿼리를 실행하면 아래 테이블이 생성됩니다.
셀프 조인
두 개의 테이블이 있으므로 스스로 조인하여 테이블을 생성하는 데 사용하는 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;>