Ngôn ngữ SQL - INNER JOIN
INNER JOIN trong SQL
Lệnh Inner Join trong SQL tạo một bảng kết quả mới bằng cách kết hợp các giá trị cột của hai bảng (table1 và table2) dựa trên điều kiện nối. Truy vấn so sánh từng hàng của table1 với từng hàng của table2 để tìm tất cả các cặp hàng thỏa mãn điều kiện nối. Khi điều kiện nối được thỏa mãn, các giá trị cột cho mỗi cặp hàng A và B phù hợp sẽ được kết hợp thành một hàng kết quả.
Cú pháp
Cú pháp cơ bản của INNER JOIN trong SQL là:
SELECT bang1.cot1, bang2.cot2...
FROM bang1
INNER JOIN bang2
ON bang1.field_chung = bang2.field_chung;
Ví dụ
Giả sử có hai bảng, bảng SINHVIEN có các bản ghi sau:
+----+---------+-----+-----------+--------+
| ID | TEN | TUOI| KHOAHOC | HOCPHI |
+----+---------+-----+-----------+---------+
| 1 | Hoang | 21 | CNTT | 4000000|
| 2 | Viet | 19 | DTVT | 3000000|
| 3 | Thanh | 18 | KTDN | 4000000|
| 4 | Nhan | 19 | CK | 4500000|
| 5 | Huong | 20 | TCNH | 5000000|
+----+---------+-----+-----------+---------+
Bảng MUONSACH có các bản ghi sau:
+-----+---------------------+-------------+--------+
|STT | NGAY | SINHVIEN_ID | SOTIEN |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 320 |
| 100 | 2009-10-08 00:00:00 | 3 | 250 |
| 101 | 2009-11-20 00:00:00 | 2 | 280 |
| 103 | 2008-05-20 00:00:00 | 4 | 290 |
+-----+---------------------+-------------+--------+
Bây giờ, chúng ta kết hợp hai bảng bởi sử dụng INNER JOIN trong SQL như sau:
SQL> SELECT ID, TEN, SOTIEN, NGAY
FROM SINHVIEN
INNER JOIN MUONSACH
ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID;
Ví dụ trên sẽ cho kết quả:
+----+----------+--------+---------------------+
| ID | TEN | SOTIEN | NGAY |
+----+----------+--------+---------------------+
| 3 | Thanh | 320 | 2009-10-08 00:00:00 |
| 3 | Thanh | 250 | 2009-10-08 00:00:00 |
| 2 | Viet | 280 | 2009-11-20 00:00:00 |
| 4 | Nhan | 290 | 2008-05-20 00:00:00 |
+----+----------+--------+---------------------+