Lấy dữ liệu từ nhiều bảng với các tham gia bên trong SQL

Bên trong tham gia trả về thông tin xuất hiện trong hai hoặc nhiều cơ sở dữ liệu

Các phép nối bên trong là các phép nối được sử dụng thường xuyên nhất trong SQL. Chúng chỉ trả về thông tin tồn tại trong hai hoặc nhiều bảng cơ sở dữ liệu. Điều kiện kết nối xác định bản ghi nào được ghép nối với nhau và được xác định trong mệnh đề WHERE. Ví dụ, nếu bạn cần một danh sách các trình điều khiển / xe kết hợp trong đó cả xe và tài xế đều nằm trong cùng một thành phố, truy vấn SQL sau đây hoàn thành nhiệm vụ này:

CHỌN họ, tên, thẻ TỪ trình điều khiển, phương tiện WHERE drivers.location = vehicles.location

Đây là kết quả:

thẻ firstname
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Lưu ý rằng kết quả là chính xác những gì đã được tìm kiếm. Có thể tinh chỉnh thêm truy vấn bằng cách chỉ rõ các tiêu chí bổ sung trong mệnh đề WHERE. Giả sử truy vấn ban đầu phù hợp với các trình điều khiển cho các phương tiện mà họ không được phép lái xe (tài xế xe tải đến ô tô và ngược lại). Bạn có thể sử dụng truy vấn sau đây để giải quyết vấn đề này:

CHỌN lastname, firstname, tag, vehicles.class TỪ trình điều khiển, phương tiện WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Ví dụ này chỉ định bảng nguồn cho thuộc tính lớp trong mệnh đề SELECT vì lớp không rõ ràng — nó xuất hiện trong cả hai bảng. Mã thường sẽ chỉ định cột nào của bảng nên được bao gồm trong kết quả truy vấn. Trong trường hợp này, nó không tạo ra sự khác biệt, vì các cột giống hệt nhau và chúng được nối với nhau bằng cách sử dụng equijoin. Tuy nhiên, nếu các cột chứa dữ liệu khác nhau, sự khác biệt này sẽ rất quan trọng. Đây là kết quả của truy vấn này:

lastname firstname tag class
---------- ------------ ---- ------
Xe Baker Roland H122JM
Xe tải Smythe Michael D824HA
Xe Jacobs Abraham J291QR

Các hàng bị mất cặp kết hợp Michael Smythe với một chiếc xe và Abraham Jacobs đến một chiếc xe tải, những chiếc xe họ không được phép lái xe.

Bạn cũng có thể sử dụng các kết nối bên trong để kết hợp dữ liệu từ ba hoặc nhiều bảng .