CÁC PHÉP JOIN TRONG SQL

     

Dẫn nhập

Trong bài trước, chúng ta đã cùng nhau tìm hiểu về INNER JOIN vào SQL. Tương đối giống bài xích trước, bài bác này Kteam sẽ ra mắt đến chúng ta một bí quyết Join khác.

Bạn đang xem: Các phép join trong sql

Đó là FULL OUTER JOIN.

Nội dung chính

Để theo dõi tốt nhất có thể bài này, bạn nên xem qua bài:

Trong bài xích này, chúng ta sẽ thuộc nhau tìm hiểu một số vụ việc sau:

Database chủng loại Full Outer Join là gì? Full Outer Join trong SQL. Full Outer Join phối kết hợp điều kiện. Cross Join vào SQL.

Database mẫu

Để thao tác tốt với bài xích này, chúng ta sử dụng database giayphutyeuthuong.vn sau:

Full Outer Join là gì?

FULL OUTER JOIN là mệnh đề tróc nã vấn với công dụng trả về là tập hợp tất cả dữ liệu bình thường và riêng rẽ giữa trải qua điều kiện kết hợp hai bảng.

Các tài liệu chung chính là truy vấn INNER JOIN trên nhì bảng. Những dữ liệu riêng, chỉ trường tồn ở 1 trong các hai bảng không tồn tại giá trị trùng khớp điều kiện phối kết hợp thì các trường sinh hoạt bảng còn sót lại đượcmặc định NULL (Rỗng)

Mọi Full Outer Join đều sẽ phải có điều kiện kết hợp sau ON

Tương từ Inner Join, ta cũng có thể liên tưởng mang đến Full Outer Join trải qua biểu trang bị venn vào toán học tập về phép hòa hợp hai tập hợp với A, B thay mặt đại diện cho tài liệu trong 2 Table. Full Outer Join đó là kết trái của phép toánA phù hợp B.

*

Full Outer Join 2 Table vào SQL

Cấu trúc:

SELECT

FROM FULL OUTER JOIN

ON

Trong đó:

tên những column cần hiển thị ở hiệu quả truy vấn. Các column được ngăn cách với nhau bởi dấu phẩy (,), làtên những bảng để lấy dữ liệu khi truy vấn. điều kiện để tầm nã vấn Full Outer Join của Table A với các Table B.

Lưu ý:

Full Outer Join rất có thể mang lại cho mình một công dụng tổng quan liêu về tài liệu chung cùng riêng từ nhì Table.Tuy nhiên cần cảnh giác trong mục đích sử dụng, do công dụng mang lại có thể rất khủng với các Table có con số record lớn tưởng > vận tốc truy vấn bị ảnh hưởng.Nếu các bạn không xác minh được các trường ở trong tính nên trả ra, song khi công dụng Full Outer Join đã làm các bạn rất rối mắt.

Ví dụ

Để hiểu rõ hơn về FULL OUTER JOIN cũng giống như trường phù hợp truy vấn như thế nào nên sử dụng Full Outer Join. Họ cùng thao tác một số lấy một ví dụ sau trên Databasegiayphutyeuthuong.vn sinh hoạt đầu bài.

Ví dụ 1:Nhu cầu đưa ra khi bạn có nhu cầu chọn một cô giáo chưa nhà nhiệm chủ đề nào để công ty nhiệm cho đề tài bắt đầu mà vẫn đề xuất xem qua toàn bộ giáo viên và chủ đề đã có chủ nhiệm.

Vậy bắt buộc xuất ra danh sách giáo viên làm sao đã chủ nhiệm đề tài, cô giáo nào chưa công ty nhiệm đề tài để có cái chú ý tổng quan liêu nhất.

Ở phía trên ta chỉ chọn những thông tin chính quan trọng đáp ứng nhu cầu truy vấn

--Hiển thị các GV chủ nhiệm đề tài & chưa nhà nhiệm đề tàiSELECT GV.MAGV, GV.HOTEN, DT.MADT,DT.TENDTFROM dbo.GIAOVIEN AS GVFULL OUTER JOIN dbo.DETAI AS DT ON DT.GVCNDT = GV.MAGVKết trái trả về như sau giúp ta dễ dàng thấy được:

Giáo viên như thế nào đã có chủ nhiệm đề tài? đó là đề tài gì? giáo viên nào chưa chủ nhiệm đề tài?

*

Ví dụ 2: Xuất thông tin bộ môn đã gồm giáo viên dạy dỗ và chưa tồn tại giáo viên dạy.

SELECT BM.MABM, BM.TENBM, GV.MAGV,GV.HOTENFROM dbo.BOMON AS BMFULL OUTER JOIN dbo.GIAOVIEN AS GV ON GV.MABM = BM.MABMVí dụ 3: Xuất list giáo viên có người thân trong gia đình & chưa tồn tại người thân.

SELECT GV.MAGV,GV.HOTEN, NT.TENFROM dbo.GIAOVIEN AS GVFULL OUTER JOIN dbo.NGUOITHAN AS NT ON NT.MAGV = GV.MAGVKteam khuyến khích chúng ta tự làm việc câu lệnh trên Database sẵn gồm để nắm rõ hơn hiệu quả cũng như giải pháp truy vấn Full Outer Join.

Xem thêm: Cách Xóa Hiệu Ứng Trong Powerpoint 2003, Cách Xoá Hiệu Ứng Trong Powerpoint

Full Outer Join phối kết hợp điều kiện

Tương từ bỏ Inner Join, FULL OUTER JOIN hoàn toàn hoàn toàn có thể kết phù hợp với các điều kiện khác nếu như cần bởi mệnh đềWHERE.

Ví dụ 4: Xuất ra list những giáo viên chị em có người thân & chưa tồn tại người thân.

SELECT GV.MAGV,GV.HOTEN, NT.TENFROM dbo.GIAOVIEN AS GVFULL OUTER JOIN dbo.NGUOITHAN AS NT ON NT.MAGV = GV.MAGVWHERE GV.PHAI = N"NỮ"Ví dụ 5: Xuất thông tin bộ môn nằm trong khoa công nghệ thông tin đã gồm giáo viên dạy dỗ và chưa có giáo viên dạy

SELECT BM.MABM, BM.TENBM, GV.MAGV,GV.HOTENFROM dbo.BOMON AS BMFULL OUTER JOIN dbo.GIAOVIEN AS GV ON GV.MABM = BM.MABMWHERE BM.MAKHOA = "CNTT"

Cross Join vào SQL

Trong bài xích này, Kteam đề cập cho CROSS JOIN nhằm mục tiêu tránh tình trạng một trong những bạn chưa nắm rõ bị nhầm lần với Full Outer Join.

CROSS JOIN là một trong cách truy vấn vấn tựa như truy vấn dữ liệu từ hai bảng, kết quả tra về là tập thích hợp tích Descartes của nhì bảng đó.

Số Record tác dụng sẽ bởi tích Record từ 2 bảng. Cross join được khuyến khích sử dụng hơn tầm nã vấn vì chưng đạt chuẩn chỉnh ANSI giúp rõ ràng trong cú pháp.

Cấu trúc

SELECT

FROM CROSS JOIN

Trong đó:

tên những column đề xuất hiển thị ở công dụng truy vấn. Những column được ngăn cách với nhau bởi dấu phẩy (,), làtên những bảng để lấy dữ liệu khi truy vấn.

Lưu ý:

Dù cũng với lại công dụng tổng quan mà lại CROSS JOIN không cho kết quả giống FULL OUTER JOIN.Như trong những bài trước đề cập, vì chưng là tích Descartes những dữ liệu nên tốc độ truy vấn của Cross Join sẽ chậm rì rì và sự bùng nổ bạn dạng ghi sẽ là vô cùng lớn. Mặc dù vẫn bao gồm trường hòa hợp cần thực hiện CROSS JOIN nhưng mà Kteam đang đề cập ngay sinh hoạt ví dụ phía dưới.

Ví dụ:

Trong Database đã sử dụng, họ không gồm trường hợp áp dụng CROSS JOIN công dụng hay yêu cầu thiết, vị vậy chúng ta dùng một Database dễ dàng và đơn giản sau

Database CHIANHOM

CREATE DATABASE CHIANHOMGOUSE CHIANHOMGOCREATE TABLE NHOM_A(MAHS CHAR(4),TENHS NVARCHAR(50))CREATE TABLE NHOM_B(MAHS CHAR(4),TENHS NVARCHAR(50))CREATE TABLE MONTHI(MAMH CHAR(4),TENMH NVARCHAR(100))INSERT INTO dbo.NHOM_A ( MAHS, TENHS )VALUES ( "A01", -- MAHS - char(4) N"Trần Kim Long" -- TENHS - nvarchar(50) )INSERT INTO dbo.NHOM_A ( MAHS, TENHS )VALUES ( "A02", -- MAHS - char(4) N"Nguyễn Đoàn Ngọc Giàu" -- TENHS - nvarchar(50) )INSERT INTO dbo.NHOM_A ( MAHS, TENHS )VALUES ( "A03", -- MAHS - char(4) N"Trần Thị Như Quỳnh" -- TENHS - nvarchar(50) )INSERT INTO dbo.NHOM_B ( MAHS, TENHS )VALUES ( "B01", -- MAHS - char(4) N"Trần Thành Vi Thanh" -- TENHS - nvarchar(50) )INSERT INTO dbo.NHOM_B ( MAHS, TENHS )VALUES ( "B02", -- MAHS - char(4) N"Phạm Thành" -- TENHS - nvarchar(50) )INSERT INTO dbo.MONTHI ( MAMH, TENMH )VALUES ( "001", -- MAMH - char(4) N"Toán" -- TENMH - nvarchar(100) )INSERT INTO dbo.MONTHI ( MAMH, TENMH )VALUES ( "002", -- MAMH - char(4) N"Văn" -- TENMH - nvarchar(100) )INSERT INTO dbo.MONTHI ( MAMH, TENMH )VALUES ( "003", -- MAMH - char(4) N"Tiếng Anh" -- TENMH - nvarchar(100) ) SELECT * FROM dbo.NHOM_ASELECT * FROM dbo.NHOM_BSELECT * FROM dbo.MONTHINhu ước truy vấnVí dụ 6: Cần một list chia nhóm mang lại môn học tập nào đó mà mỗi cá thể ở nhóm A đều cần lần lượt phổ biến nhóm cùng với một cá thể ở nhóm B. Ta áp dụng Cross Join

SELECT * FROM dbo.NHOM_ACROSS JOIN dbo.NHOM_BKết trái trả về là một trong những danh sách cơ mà mỗi cá nhân ở đội A đề thao tác làm việc với một cá nhân ở nhóm B

*

Ví dụ 7: Ngoài ra, có thể dùng trong trường đúng theo nhu đề nghị lập một list thi mà lại mỗi học sinh ở team A đều phải tham gia toàn bộ các môn vào table MONTHI.

SELECT * FROM dbo.NHOM_ACROSS JOIN dbo.MONTHI

Cross join phối hợp điều kiện

Tương trường đoản cú Full Outer Join, Cross Join cũng hoàn toàn có thể kết hợp với điều kiện bởi mệnh đềWHERE

Ví dụ 8: Nhu đề xuất xuất một danh sách thi cơ mà mỗi học sinh có họ ‘Trần’ở team A đều phải tham gia tất cả các môn vào table MONTHI.

SELECT * FROM dbo.NHOM_ACROSS JOIN dbo.MONTHIWHERE dbo.NHOM_A.TENHS like N"Trần%"Các ví dụ trên chỉ mang tính minh họa nhằm bạn hiểu rõ hơn về tróc nã vấn CROSS JOIN, tuy trường hợp thực tế và cấu tạo Database và nhu cầu truy vấn mà bạn lựa chọn tất cả nên sử dụng CROSS JOIN.

Kết

Trong bài xích này, họ đã tò mò về FULL OUTER JOINvà CROSS JOIN trong SQL Server.

Xem thêm: Tác Phong Lề Lối Làm Việc Của Giáo Viên Mẫu Mực, Về Tác Phong Lề Lối Làm Việc Của Đảng Viên

Bài sau, họ sẽ khám phá về HALF OUTER JOIN hay rõ ràng làLEFT JOIN & RIGHT JOIN JOIN trong SQL.

Cảm ơn các bạn đã theo dõi bài viết. Hãy nhằm lại comment hoặc góp ý của bạn để phát triển nội dung bài viết tốt hơn. Đừng quên “Luyện tập –Thử thách –Không trinh nữ khó