Khi cần kết hợp dữ liệu từ hai hoặc nhiều bảng trong Cơ sở dữ liệu, chúng ta sử dụng phép nối (JOIN) để liên kết dữ liệu từ các bảng này. Với INNER JOIN, khi thực hiện câu truy vấn, nó sẽ trả về dữ liệu mà khớp với nhau giữa hai hoặc nhiều bảng trong Cơ sở dữ liệu. Nói cách khác, dữ liệu trả về sau khi thực hiện INNER JOIN là sự kết hợp (giao) của dữ liệu từ hai hoặc nhiều bảng.
Cú pháp lệnh của INNER JOIN
SELECT Table_A.pk_column, Table_A.columns, Table_B.pk_column, Table_B.columns FROM Table_A INNER JOIN Table_B ON Table_A.pk_column = Table_B.fk_column;
Một số ví dụ sử dụng INNER JOIN
INNER JOIN giữa 2 bảng CSDL
Giả sử chúng ta có 2 bảng employee và company có cấu trúc và mối quan hệ như bên dưới:
Dữ liệu của 2 bảng company & employee lần lượt như sau:
Yêu cầu: Lấy dữ liệu gồm tên nhân viên, vị trí, lương của công ty Vinfast và VinaSupport INC
SELECT e.fullname, e.position, e.salary, c.name FROM employee as e INNER JOIN company as c ON e.company_id = c.company_id WHERE c.name = 'Vinfast' OR c.name = 'VinaSupport INC' ORDER BY c.name;
Kết quả của câu query
INNER JOIN giữa 3 bảng CSDL
Giả sử chúng ta có thêm 1 bảng deparment có cấu trúc và quan hệ như bên dưới.
Dữ liệu của bảng department:
Dữ liệu của bảng employee sau khi có thêm liên kết với bảng department:
Yêu cầu: Lấy dữ liệu gồm tên nhân viên, vị trí, lương của các ông làm ở “Phòng Giám Đốc” của công ty Vinfast
SELECT e.fullname, e.position, e.salary, c.name, d.name FROM employee as e INNER JOIN company as c ON e.company_id = c.company_id INNER JOIN department as d ON e.department_id = d.department_id WHERE c.name = 'Vinfast' AND d.name = 'Phòng Giám Đốc';
Kết quả sau khi INNER JOIN 3 bảng