Bước tới nội dung

Join (SQL)

Bách khoa toàn thư mở Wikipedia

Đây là một phiên bản cũ của trang này, do 219.117.194.135 (thảo luận) sửa đổi vào lúc 14:05, ngày 16 tháng 2 năm 2007 (Trang mới: Một từ khóa '''join ''' kết nối nhiều bản ghi từ 2 bảng dữ liệu trong 1 cơ sở dữ liệu quan hệ và kết quả được đưa vào ...). Địa chỉ URL hiện tại là một liên kết vĩnh viễn đến phiên bản này của trang, có thể khác biệt rất nhiều so với phiên bản hiện hành.

(khác) ← Phiên bản cũ | Phiên bản mới nhất (khác) | Phiên bản mới → (khác)

Một từ khóa join kết nối nhiều bản ghi từ 2 bảng dữ liệu trong 1 cơ sở dữ liệu quan hệ và kết quả được đưa vào 1 bảng (tạm). Trong ngôn ngữ truy vấn theo cấu trúc (SQL) có 3 loại kết hợp sau: nội, ngoại và chéo. Kết ngoại được chia ra thêm thành kết ngoại bên trái (left outer join), kết ngoại bên phải (right outer join), và kết ngoại đủ (full outer join).

Về mặt toán học, phép kết hợp là 1 cấu tạo quan hệ, 1 thao tác cơ bản trong đại số quan hệ và tổng quát hóa và là khái quát hóa của cấu tạo hàm.

Ví dụ trên bảng

Những ví dụ dưới đây về phép kết hợp sử dụng 2 bảng sau:

Bảng "employee"
LastName DepartmentID
Smith 34
Jones 33
Robinson 34
Jasper 36
Steinberg 33
Rafferty 31


Bảng "department"
DepartmentName DepartmentID
Sales 31
Engineering 33
Clerical 34
Marketing 35

Để minh họa, ta cần chú ý rằng DepartmentID của nhân viên Jasper không có dòng tương ứng nào trong bảng department, và Marketing department thì không có dòng tương ứng trong bảng employee.

Các hình thức kết hợp

Kết nội

Một phép kết nội (inner join) thực chất là tìm giao của 2 bảng dữ liệu. Đây là loại kết hợp thường đươc dùng nhất và được xem như là phép kết hợp mặc định. Ví dụ dưới đây về phép kết hợp trích tất cả các bản ghi trong bảng dữ liệu A (employee) và tìm những bản ghi tương ứng trong bảng B (department). Nếu không tìm được, những bản ghi trong A sẽ không được đưa vào kết quả. Nếu có nhiều kết quả tìm được trong B tương ứng với vị từ, thì 1 dòng sẽ được trả về ứng với mỗi vị từ (giá trị ở bảng A sẽ được lặp)