PostgreSQL FULL JOIN

Giới thiệu về PostgreSQL FULL JOIN

PostgreSQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở mạnh mẽ, phổ biến với khả năng mở rộng, tuân thủ chuẩn SQL và hỗ trợ nhiều loại dữ liệu. Một trong những khái niệm cơ bản trong PostgreSQL (và SQL nói chung) là cách kết hợp dữ liệu từ hai hoặc nhiều bảng. FULL JOIN (hoặc FULL OUTER JOIN) là một trong những kiểu kết hợp này.

Định nghĩa FULL JOIN

FULL JOIN là một phương thức kết hợp dữ liệu giữa hai bảng mà trong đó, nó trả về tất cả các bản ghi từ cả hai bảng. Nếu không tìm thấy sự kết hợp giữa các bản ghi, nó sẽ trả về giá trị NULL cho các cột không có dữ liệu. Điều này có nghĩa là FULL JOIN kết hợp cả LEFT JOIN và RIGHT JOIN, mang đến cái nhìn đầy đủ hơn về dữ liệu trong các bảng liên quan.

Cú pháp của FULL JOIN

SELECT columns
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name;

Trong đó:

  • columns: Là danh sách các cột bạn muốn chọn từ bảng.
  • table1: Là tên của bảng đầu tiên.
  • table2: Là tên của bảng thứ hai.
  • column_name: Là tên của cột dùng để nối hai bảng.

Ví dụ về FULL JOIN

Giả sử bạn có hai bảng: "employees" (nhân viên) và "departments" (phòng ban). Bảng "employees" có thể chứa thông tin về các nhân viên và bảng "departments" chứa thông tin về các phòng ban.

Bảng employees:
| emp_id | emp_name | dept_id |
|--------|----------|---------|
| 1      | John     | 1       |
| 2      | Alice    | 2       |
| 3      | Bob      | NULL    |

Bảng departments:
| dept_id | dept_name    |
|---------|--------------|
| 1       | HR           |
| 2       | IT           |
| 3       | Marketing    |

Câu lệnh FULL JOIN:
SELECT e.emp_id, e.emp_name, d.dept_name
FROM employees e
FULL JOIN departments d
ON e.dept_id = d.dept_id;

Kết quả:
| emp_id | emp_name | dept_name |
|--------|----------|-----------|
| 1      | John     | HR        |
| 2      | Alice    | IT        |
| 3      | Bob      | NULL      |
| NULL   | NULL     | Marketing  |

Kết luận

FULL JOIN là một công cụ hữu ích trong PostgreSQL để kết hợp dữ liệu từ hai bảng và đảm bảo rằng bạn không bỏ lỡ bất kỳ thông tin nào. Bằng cách sử dụng FULL JOIN, bạn có thể thấy rõ ràng sự liên kết giữa các bảng và đánh giá các bản ghi không khớp cũng như dữ liệu còn thiếu. Điều này giúp bạn có cái nhìn tổng quan hơn về dữ liệu trong cơ sở dữ liệu của mình.