INNER JOIN trong SQL

By 3 năm ago

Trong cấu trúc cơ sở dữ liệu SQL có một hàm mà các bạn sẽ cần phải sử dụng rất thường xuyên, đó là Inner Join. Vậy, Inner Join trong SQL là cú pháp gì, có tác dụng như thế nào? Nếu các bạn đang tìm hiểu về cú pháp này hãy theo dõi bài viết kết hợp cùng một vài ví dụ dưới đây để hiểu rõ hơn.

1. Cú pháp INNER JOIN trong SQL

SQL Inner Join là một mệnh đề được dùng nhằm mục đích truy vấn kết quả. Khi viết đúng câu lệnh, hệ thống sẽ trả về tập hợp dữ liệu thỏa mãn điều kiện từ hai bảng. Câu lệnh này sẽ thực hiện truy vấn dữ liệu trong bang1 và bang2, thực hiện so sánh mỗi hàng trong hai bảng để tìm ra các cặp hàng kết hợp thỏa mãn điều kiện người dùng đưa ra.

Cú pháp của câu lệnh Inner Join SQL cơ bản như sau:

SELECT cot1, cot2,... cotn

FROM bang1

INNER JOIN bang2

ON bang1.cot_chung = bang2.cot_chung;

Trong đó:

  • Cot1, cot2,… cotn: Tên các cột mà người dùng muốn hiển thị kết quả truy vấn. Trong cú pháp, các cột được phân cách bằng một dấu phẩy (,)
  • Bang1, bang2: Tên bảng truy vấn dữ liệu
  • Cot_chung: Tên cột khóa ngoại được dùng để tham chiếu từ bag 1 đến cột định danh ở bang2 hoặc ngược lại

2. Ví dụ về INNER JOIN trong SQL

Để các bạn có thể hiểu rõ hơn về Inner Join in SQL chúng tôi xin lấy một vài ví dụ sau:

Giả sử, chúng ta có hai bảng tên là NHANVIEN và TIENTHUONG với nội dung các cột như sau:

Bảng 1: NHANVIEN

ID TEN TUOI DIACHI LUONG
1 Thanh 32 haiphong 2000.00
2 Loan 25 Hanoi 1500.00
3 Nga 23 Hanam 2000.00
4 Manh 25 Hue 6500.00
5 Huy 27 Hatinh 8500.00
6 Cao 22 HCM 4500.00
7 Lam 24 Hanoi 10000.00

Bảng 2: TIENTHUONG

TT_ID NGAY NHANVIEN_ID SOTIEN
102 2019-01-08 00:00:00 3 3000
100 2019-01-08 00:00:00 3 1500
101 2019-02-20 00:00:00 2 1560
103 2018-12-20 00:00:00 4 2060

Câu lệnh Inner Join trong SQL dùng để join hai bảng này lại như sau:

SELECT ID, TEN, SOTIEN, NGAY

FROM NHANVIEN

INNER JOIN TIENTHUONG

ON NHANVIEN.ID = TIENTHUONG.NHANVIEN_ID;

Khi thực hiện câu lệnh chúng ta sẽ nhận được kết quả trả về là:

ID TEN SOTIEN NGAY
3 Nga 3000 2019-01-08 00:00:00
3 Nga 1500 2019-01-08 00:00:0
2 Loan 1560 2019-02-20 00:00:00
4 Manh 2060 2018-12-20 00:00:00

3. Sự khác biệt giữa JOIN và INNER JOIN trong SQL

  • JOIN là từ khóa trong SQL dùng để kết hợp các hàng từ nhiều bảng dựa trên mối quan hệ giữa các cột.
  • INNER JOIN là loại JOIN phổ biến và trả về các hàng khi các cột có sự trùng khớp giữa các bảng tham gia.
  • INNER JOIN chọn tất cả các hàng từ hai bảng khi các giá trị trong các cột được nối khớp nhau. Ví dụ, nếu có bảng “sinh viên” và bảng “khóa học”, INNER JOIN sẽ lấy các hàng có số nhận dạng sinh viên trùng nhau trong cả hai bảng.
  • INNER JOIN của hai bảng A và B là phần giao nhau của A và B, tương đương với phần bên trong của biểu đồ Venn. Nó chỉ trả về những hàng có giá trị trùng khớp trong các cột được so sánh.
  • INNER JOIN sử dụng các toán tử so sánh như =, <, > để so khớp các hàng từ hai bảng dựa trên các giá trị trong các cột chung. Chỉ những hàng có giá trị tương ứng mới được đưa vào kết quả.

4. Sự khác biệt giữa INNER JOIN và OUTER JOIN

OUTER JOIN là một loại kết nối trong SQL cho phép trả về tất cả các hàng từ bảng liên quan dựa trên điều kiện liên kết và cả những hàng không có sự trùng khớp cũng sẽ được bao gồm. Có ba loại OUTER JOIN phổ biến:

  • LEFT OUTER JOIN (hoặc LEFT JOIN): Loại JOIN này bao gồm tất cả các hàng từ bảng bên trái của mệnh đề JOIN và cả những hàng từ bảng bên phải mà không có sự trùng khớp (với các giá trị NULL cho cột được chọn).
  • RIGHT OUTER JOIN (hoặc RIGHT JOIN): Loại JOIN này bao gồm tất cả các hàng từ bảng bên phải của mệnh đề JOIN và cả những hàng từ bảng bên trái mà không có sự trùng khớp (với các giá trị NULL cho cột được chọn).
  • FULL OUTER JOIN: Loại JOIN này bao gồm tất cả các hàng từ cả bảng bên trái và bảng bên phải của mệnh đề JOIN và cả những hàng từ cả hai bảng mà không có sự trùng khớp (với các giá trị NULL cho cột được chọn).

Các loại OUTER JOIN cho phép kết hợp dữ liệu từ nhiều bảng dựa trên điều kiện được chỉ định, và chúng đóng vai trò quan trọng trong việc phân tích và trích xuất dữ liệu từ cơ sở dữ liệu quan hệ.

Trên đây là giải đáp của chúng tôi về câu lệnh Inner Join trong SQL và ví dụ minh họa. Hy vọng thông qua bài viết này các bạn đã hiểu ý nghĩa và cách sử dụng câu lệnh này như thế nào. Chúc các bạn học tập tốt môn cấu trúc cơ sở dữ liệu và sử dụng thành thạo Inner Join.

 

Share
Thảo Larskanis

Tốt nghiệp Graduated Windesheim 2020, top Đại học lớn nhất thế giới, tôi mở blog chia sẻ kiến thức, kinh nghiệm về SQL