CÁC KIỂU JOIN TRONG SQL

     

Có một câu hỏi phỏng vấn tương đối thông dụng khi vấn đáp lập trình viên, quan trọng đặc biệt với vị trí Back - kết thúc là "join vào sql gồm những nhiều loại nào và phân biệt chúng như nào". Bản thân cũng chạm mặt nhiều chúng ta dù đang code BE 1 - hai năm nhưng vẫn mơ hồ nước về kiến thức và kỹ năng cơ phiên bản này, thực sự đấy là một thiếu sót rất cần được bù đắp độc nhất là khi chúng ta tham gia xử trí truy vấn những với những database có phong cách thiết kế phức tạp.

Bạn đang xem: Các kiểu join trong sql

Join là gì?

Là một mệnh đề vào SQL, sử dụng để liên kết dữ liệu từ hai hay nhiều bảng trong cơ sở dữ liệu lại cùng với nhau. Khi chúng ta cần truy vấn vấn các cột dữ liệu từ rất nhiều bảng khác biệt để trả về trong thuộc một tập trung quả, bạn cần dùng JOIN, SQL sẽ khởi tạo ra một bảng tạm thời chứa dữ liệu tác dụng từ JOIN.

Các một số loại join cơ bản:

Inner join ( hoặc join) : Trả về các bạn dạng ghi khi tất cả một sự tương xứng trong tất cả các bảng được join.

Ví dụ:

Ta tất cả 2 bảng ban đầu, yêu cầu lấy những tin tức và giao dịch của những nhà cung ứng có sinh hoạt bảng đầu với đã bán được thành phầm như liệt kê trong bảng vật dụng hai.

Câu lệnh select :

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngayFROM nhacungINNER JOIN donhangON nhacung.nhacung_id = donhang.nhacung_id;Chạy hoàn thành câu lệnh bọn họ được kết quả:

*

Left outer join ( hoặc left join) : trả về tất cả phiên bản ghi bảng bên trái, ngay cả khi không có sự cân xứng trong bảng bên phải, còn những phiên bản ghi như thế nào của bảng mặt phải cân xứng với bảng trái thì dữ liệu bản ghi kia được dùng làm kết thích hợp với phiên bản ghi bảng trái, nếu không có dữ liệu đang NULL.

*

Ví dụ:

Ta gồm hai bảng ban đầu, bắt buộc lấy thông tin của toàn bộ các nhà cung ứng ở bảng thứ nhất và deals nếu gồm của chúng theo liệt kê nghỉ ngơi bảng thiết bị hai.

Xem thêm: Tinh Dầu Cao Cấp Nhập Khẩu, Tinh Dầu Bạc Hà Cao Cấp Tidamo 10Ml

*
*

Câu lệnh select:

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay FROM nhacung LEFT OUTER JOIN donhang ON nhacung.nhacung_id = donhang.nhacung_id;Chạy xong xuôi câu lệnh chúng ta được kết quả:

*

Right outer join ( hoặc right join) : Trả về tất cả các bạn dạng ghi từ bỏ bảng bên phải, trong cả khi không tồn tại sự phù hợp nào ngơi nghỉ bảng bên trái, trường thích hợp này trái lại với left join.

*

Ví dụ:

Ta tất cả hai bảng ban đầu, phải lấy tất cả thông tin các deals ở bảng trang bị hai, và tin tức về nhà cung ứng của chúng nếu có.

*
*

Câu lệnh select:

SELECT donhang.donhang_id, donhang.donhang_ngay, nhacung.nhacung_ten FROM nhacung RIGHT OUTER JOIN donhang ON nhacung.nhacung_id = donhang.nhacung_id;Chạy câu lệnh select ta được kết quả:

*

Full outer join ( hoặc full join) : trả về các bản ghi khi bao gồm một sự tương xứng trong một trong số bảng.

*

Ví dụ:

Ta tất cả hai bảng ban đầu, buộc phải lấy tất cả thông tin về các deals (có thể gồm nhà đáp ứng hoặc không) và toàn bộ các nhà cung ứng (có thể có giao dịch hoặc không) trong và một câu lệnh.

Xem thêm: Hướng Dẫn 5 Bước Tự Chế Tạo Máy Vặt Lông Gà Rẻ Tiền, Hướng Dẫn Tự Tạo Máy Vặt Lông Gà Tại Nhà Đơn Giản

*
*

Câu lệnh select :

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay FROM nhacung FULL OUTER JOIN donhang ON nhacung.nhacung_id = donhang.nhacung_id;Kết quả dìm được sau thời điểm chạy lệnh sql:

*

Self join : được thực hiện để join một bảng với bao gồm nó như thể bảng chính là hai bảng, trợ thì thời đổi tên ít độc nhất một bảng trong câu lệnh SQL ( cùng với alias).

Ví dụ:

Bảng "nhanvien" có dữ liệu như sau:

*

Chúng ta vẫn tìm xem đối với từng nhân viên cấp dưới trong bảng thì sẽ sở hữu được những nhân viên sót lại nào gồm mức lương cao hơn bằng câu lệnh:

SELECT a.id, b.ten, a.luong FROM nhanvien a, nhanvien b WHERE a.luong Chạy câu lệnh ta được kết quả:

*

Kết luận:

Ở trên mình đã giới thiệu với các bạn về các loại Join cơ bản trong SQL và ví dụ dễ dàng và đơn giản đi kèm, trong quá trình sử dụng các chúng ta cũng có thể tùy biến hóa chúng thêm với những từ khóa hay đk join, đk select, order by, .... đi kèm khác để đạt được các mục đích tróc nã vấn mong muốn.