Danh sách Tutorial

[PostgreSQL] Tìm hiểu và sử dụng INNER JOIN


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 VinfastVinaSupport 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

 

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web