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.
Mục lục
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
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.