- vừa được xem lúc

SQL Joins - những thứ có thể bạn đã biết

0 0 7

Người đăng: Bui Hoang Ky

Theo Viblo Asia

Lại là mình đây anh em, hôm nay chúng ta cùng tìm hiểu lại một chút về SQL Joins nha, cũng coi như là ôn tập lại một chút ???

Vậy thì chúng ta sẽ thảo luận về các vấn đề nào nhỉ ?

  • Joins là gì ?
  • Có bao nhiêu kiểu joins ?
  • Tìm hiểu về các kiểu joins và ví dụ

Bắt đầu thôi :

1. Joins là gì ?

Nói một cách đơn giản thì Join = Combine

Joins được sử dụng để truy xuất dữ liệu từ hai hoặc nhiều table dựa trên một số các columns liên quan. Nói một cách dễ hiểu, các table này luôn một sự liên kết với nhau bằng cách nào đó.

2. Có bao nhiêu kiểu joins ?

Nhìn chúng thì chúng ta đang có 5 kiểu joins :

  1. Inner Join
  2. Left Join
  3. Right Join
  4. Full Join
  5. Cross Join

Và để tìm hiểu về các kiểu Joins này, chúng ta tạo ra hai bảng là Category và Product :

Inner Joinimage.png

Sau khi chạy thì chắc hẳn chúng ta cũng thấy là Inner Join sẽ trả về những data từ các bảng mà chỉ có giá trị phù hợp với nó mới có thể tìm thấy.

Ví dụ : Chúng ta muốn lấy list các product và tên category từ bàng Product với các category_id tương ứng của nó. Nếu category id có xuất hiện trong cả hai bảng thì toàn bộ product đó sẽ được chọn và ngược lại.

image-20210617182655-1.png

Syntax

SELECT table1.column, table1.column, table2.column, table2.column
From table1
Inner Join table2 ON table1.column = table2.column

Left Join :

Để dễ tưởng tượng thì mình có hai tập hợp như sau:

image-20210617175115-10.png

Left Join sẽ trả về tất cả các kết quả từ bảng bên trái ngay cả khi không tìm thấy kết quả phù hợp nào từ bảng bên phải. Trường hợp không tìm thấy kêt quả phù hợp nào trên bảng bên phải, kết quả trả về là NULL.

Ví dụ : Chúng ta muốn lấy tất cả các category mà có product tương ứng :

image-20210617175115-11.png

Right Join :

image-20210617175115-12.png

Đơn giản thì Right Join đối lập với Left Join thôi =))

Right Join sẽ trả về tất cả các kết quả từ bảng bên phải ngay cà khi không tìm được kết quả tương ừng từ bảng bên trái. Nếu không tìm thấy kết quả tương ứng từ bảng bên trái thì kết quả sẽ là NULL.

Ví dụ : Chúng ta muốn lấy tất cả list products và các category tương ứng :

image-20210617175115-13.png

Full Join :

image-20210617175115-14.png

FULL JOIN trong SQL trả về tất cả bản ghi ở bảng trái và bảng phải kết hợp lại. Nói cách khác,nó là kết hợp kết quả của cả hai loại LEFT và RIGHT JOIN.

Bảng được kết hợp sẽ chứa tất cả bản ghi từ cả hai bảng và điền vào đó giá trị NULL cho các giá trị không khớp nhau.

Ví dụ : Chúng ta muốn kiểm tra xem liệu bảng của chúng ta có tất cả dữ liệu cân thiết cho khách hàng hay không category có được gắn phù hợp với product hay không ? trong trường hợp đó thức ta sẽ thực hiện full join để kiểm tra xem là có giá trị nào đang NULL hay không.

image-20210617175115-15 (1).png

Cross Join :

image-20210617175115-16.png

Trong Cross Join thì mỗi row của bảng đầu tiên sẽ kết hợp với mọi row khác ở bảng thứ hai. Ví dụ :

image-20210617175115-17.png

Kết luận

Vậy thì chúng ta sẽ có những gì nhỉ ?

  • JOINS cho phép kết hợp dữ liệu từ nhiều bảng thành một kết quả duy nhất giúp giảm thiểu chi phí máy chủ.
  • Có các kiểu join sau : Inner, Left, Right, Full và Cross Join.
  • Inner Joins chỉ trả về các rows đáp ứng điều kiện phù hợp.
  • Full Join là sự kết hợp của Left và Right Join.

Vậy là bài viết của mình đã kết thúc rồi.

Nếu thấy hay, hãy cho mình một like, shareupvote nha

Cảm ơn mọi người.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Stored Procedure trong SQL Server

Stored Procedure là 1 phần không thể thiếu của SQL Server. Chúng có thể hỗ trợ rất nhiều cho lập trình và cấu hình cơ sở dữ liệu.

0 0 134

- vừa được xem lúc

sử dụng index trong sql query

Index là một trong những yếu tố quan trọng nhất góp phần vào việc nâng cao hiệu suất của cơ sở dữ liệu. Index trong SQL tăng tốc độ của quá trình truy vấn dữ liệu bằng cách cung cấp phương pháp truy xuất nhanh chóng tới các dòng trong các bảng, tương tự như cách mà mục lục của một cuốn sách giúp bạn

0 0 178

- vừa được xem lúc

Hướng dẫn sửa lỗi không cài được SQL Server

Hôm qua do yêu cầu môn học, mình có cài lại Microsoft SQL Server. Trước đó mình có cài rồi, nhưng rồi lâu không dùng nên gỡ ra cho nhẹ máy. Bây giờ có dịp cần nên mình mới cài lại. Chi tiết lỗi mình gặp phải.

0 0 119

- vừa được xem lúc

Bạn nên tránh sử dụng Soft Delete khi có thể, và đây là lý do tại sao

Con người luôn luôn mắc sai lầm. Vì vậy, việc "lo xa" trước mọi tình huống xấu nhất chưa bao giờ là thừa.

0 0 126

- vừa được xem lúc

Sử dụng trigger trong SQL qua ví dụ cơ bản.

Trigger là gì . Cú pháp của Trigger. CREATE TRIGGER tên_trigger ON tên_bảng. FOR {DELETE, INSERT, UPDATE}.

0 0 144

- vừa được xem lúc

Khác biệt giữa khóa chính và khóa ngoại trong SQL

Các khoá chính và khóa ngoại là hai loại ràng buộc có thể được sử dụng để thực thi toàn vẹn dữ liệu trong các bảng SQL Server và đây là những đối tượng cơ sở dữ liệu quan trọng. Trong bài này, tôi muố

0 0 131