Khi cần phải lấy dữ liệu từ 2 hoặc nhiều bảng CSDL, chúng ta sử dụng JOIN để liên kết dữ liệu giữa 2 bảng. Với INNER JOIN, khi thực hiện câu query, nó sẽ trả lại dữ liệu match tương ứng giữa 2 hoặc nhiều bảng trong CSDL. Hay nói cách khác, dữ liệu trả về sau khi thực hiện INNER JOIN là giao của dữ liệu 2 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
Nguồn: vinasupport.com