PostgreSQL INNER JOIN

INNER JOIN trong PostgreSQL

Trong ngôn ngữ lập trình SQL, phép nối (JOIN) cho phép bạn kết hợp dữ liệu từ hai hoặc nhiều bảng dựa trên một điều kiện liên quan giữa chúng. Một trong những loại phép nối phổ biến nhất là INNER JOIN. Nội dung của bài viết này sẽ giúp bạn hiểu rõ về INNER JOIN trong PostgreSQL thông qua định nghĩa, cú pháp và ví dụ minh họa.

Định nghĩa

INNER JOIN là phép nối dữ liệu giữa hai bảng mà chỉ trả về các bản ghi có sự liên kết trong cả hai bảng. Nói cách khác, chỉ những dòng dữ liệu mà tồn tại trong cả hai bảng dựa trên điều kiện cho trước mới được chọn.

Cú pháp

SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.common_column = table2.common_column;

Ví dụ

Giả sử chúng ta có hai bảng: employeesdepartments.

Bảng employees:
+----+-------+------------+
| id | name  | department_id |
+----+-------+------------+
|  1 | Alice |          1 |
|  2 | Bob   |          2 |
|  3 | Carol |          1 |
|  4 | Dave  |          3 |
+----+-------+------------+

Bảng departments:
+----+------------+
| id | department_name |
+----+------------+
|  1 | HR         |
|  2 | Sales      |
|  3 | Engineering |
+----+------------+

Sử dụng INNER JOIN để lấy tên nhân viên cùng với tên phòng ban mà họ làm việc:

SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;

Kết quả của truy vấn trên sẽ là:

+-------+----------------+
| name  | department_name |
+-------+----------------+
| Alice | HR             |
| Bob   | Sales          |
| Carol | HR             |
| Dave  | Engineering    |
+-------+----------------+

Bạn có thể thấy rằng chỉ những nhân viên có phòng ban tương ứng trong bảng departments mới được trả về. Nếu một nhân viên không có phòng ban tương ứng, họ sẽ không xuất hiện trong kết quả.

Kết luận

INNER JOIN là một công cụ mạnh mẽ trong PostgreSQL để kết hợp dữ liệu từ nhiều bảng. Bằng cách sử dụng INNER JOIN, bạn có thể dễ dàng truy xuất thông tin tương tác từ các bảng khác nhau và đưa ra phân tích sâu sắc hơn về dữ liệu của mình.