Mệnh đề kết hợp dữ liệu JOIN trong SQL

Trong SQL, mệnh đề JOIN được sử dụng để kết hợp các bản ghi từ hai hoặc nhiều bảng trong một Database bằng cách sử dụng các giá trị chung từ mỗi bảng.

Ở bài viết này, Quantrimang sẽ hướng dẫn chi tiết cho bạn cách sử dụng mệnh đề JOIN trong SQL với những ví dụ cụ thể để dễ hình dung và nắm bắt lệnh tốt hơn.

Giả sử có hai bảng là NHANVIEN và TIENTHUONG có các bản ghi 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 |
 +-----+---------------------+-------------+--------+

Bây giờ, chúng ta kết hợp hai bảng này trong câu lệnh SELECT như sau:

SQL> SELECT ID, TEN, TUOI, SOTIEN  FROM NHANVIEN, TIENTHUONG  WHERE NHANVIEN.ID = TIENTHUONG.NHANVIEN_ID;

Kết quả trả về là:

 +----+----------+-----+--------+
 | ID | TEN      | TUOI| SOTIEN |
 +----+----------+-----+--------+
 |  3 | Nga      |  23 |   3000 |
 |  3 | Nga      |  23 |   1500 |
 |  2 | Loan     |  25 |   1560 |
 |  4 | Manh     |  25 |   2060 |
 +----+----------+-----+--------+

Bạn có thể thấy ở đây JOIN được thực hiện trong mệnh đề WHERE. Một số toán tử có thể được sử dụng để kết hợp các bảng là: =, <, >, <>, <=, >=, !=, BETWEEN, LIKE, và NOT. Tuy nhiên toán tử được sử dụng phổ biến nhất là dấu bằng (=).

Các kiểu JOIN trong SQL

Trong SQL, có một số kiểu JOIN có sẵn là:

Kiểu JOIN Ý nghĩa
INNER JOIN Trả về các bản ghi có giá trị phù hợp giữa hai bảng.
LEFT JOIN Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải. Kết quả là NULL từ phía bên phải nếu không có kết quả phù hợp.
RIGHT JOIN Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi phù hợp từ bảng bên trái. Kết quả là NULL từ phía bên trái nếu không có kết quả phù hợp.
FULL JOIN Trả về tất cả bản ghi ở bảng trái và bảng phải kết hợp lại.
SELF JOIN Được sử dụng để kết hợp một bảng với chính nó như khi coi bảng đó là hai bảng, thay tên tạm thời ít nhất một bảng trong lệnh SQL.
CARTESIAN JOIN Trả về tích Đề-các của các tập hợp bản ghi từ hai hoặc nhiều bảng đã được kết hợp.

Ở các bài tiếp theo, Quantrimang sẽ cùng bạn thảo luận thêm về từng kiểu JOIN đã đề cập ở trên. Các bạn nhớ theo dõi nhé!