Cách truy vấn vấn nhiều bảng, sử dụng các loại JOIN như LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN vào SQL để lấy dữ liệu kết hợp. Cú pháp lệnh JOIN lấy tài liệu hai bảng, ba bảng.
Bạn đang xem: Lệnh join trong sql
Truy vấn những bảng, khớp nối những bảng với where
Một vào nhưng ích lợi chính của SQL là khả năng kết hợp dữ liệu từ nhì hay những bảng lại cùng với nhau. Việc phối kết hợp các bảng lại do vậy gọi là JOIN, SQL sẽ tạo nên ra một bảng trong thời điểm tạm thời chứa dữ liệu kết quả từ JOIN.
Trước khi tò mò cú pháp mệnh đề join, trong một số trường hợp rất có thể lấy dữ liệu phối hợp của các bảng chỉ bằng cách đơn giản là sử dụng mệnh đề where, hãy xét lấy một ví dụ sau: có CSDL trong đó bảng Donhang với bảng Khachhang (thông tin kết cấu CSDL lấy một ví dụ này xem tại SQL Online)
Khớp nối nhị bảng
Giờ chúng ta cần săn sóc qua những dòng của tất cả hai bảng, cùng với mỗi deals trong bảng Donhang kéo ra ID của solo hàng, ngày để hàng. Mỗi đơn hàng đều tất cả KhachhangID, căn cứ vào đó kéo ra tên khách hàng đăng ký trực tuyến trong bảng Khachhang
Như vậy dữ liệu lôi ra từ nhì bảng, nhì bảng này sẽ khớp nối dữ liệu với nhau, vào câu truy nã vấn trước tên làm việc mệnh đề from chỉ ra rằng tên hai bảng cần liên kết (cách nhau bởi vì dấu phảy), và ở mệnh đề where là đk khớp nối.
Ví dụ:
SELECT Donhang.DonhangID, Khachhang.Hoten, Donhang.NgaydathangFROM Donhang, KhachhangWHERE Donhang.KhachhangID=Khachhang.KhachhangID
chạy thử

Sự phối hợp giữa hai bảng
Kết trái trên bạn thấy tên quý khách hàng (Hoten) rước ở bảng Khachhang, với mỗi quý khách hàng lấy được thì những ngày đặt hàng và ID của deals (Ngaydathang,DonhangID) của người tiêu dùng đó được rước ở bảng Donhang
Ở đây bao gồm một tệp tin CSDL mẫu dạng SQLite, chúng ta có thể tải về nghiên cứu, thực hành: database SQLite mẫu. Hoặc sử dụng trực tiếp qui định Online: Chạy SQL
Đặt lại tên bảng khi truy vấn với AS
Từ khóa as bạn đã từng dùng để đặt thương hiệu cột tùy biến, cùng với cũng rất có thể dùng as để đặt tên tùy trở nên (tên tắt sử dụng trong câu tầm nã vấn), mục tiêu để câu tróc nã vấn phức tạp, nhiều năm trở lên ngắn gọn, đọc dễ hơn.
Ví dụ bên trên viết có thực hiện tên tắt đến bảng
SELECT o.DonhangID, c.Hoten, o.NgaydathangFROM Donhang As o, Khachhang AS cWHERE o.KhachhangID=c.KhachhangID
kiểm tra
Bảng Donhang tương ứng với thương hiệu tắt o, bảng Khachhang thành c.
Xem thêm: Cách kẻ eyeliner cho mắt 2 mí cực dễ giúp nàng xinh lung linh
Các dạng hình JOIN
Cách khớp nối bảng làm việc trên (sử dụng điều kiện khớp nối sinh sống mệnh đề where) thực hiện với khớp nối thông thường, thực tiễn SQL thực hiện mệnh đề join với rất nhiều cách kết nối bảng khách nhau tùy mục đích lấy dữ liệu. Vào cú pháp tất cả từ khóa join cùng hai bảng yêu cầu kết nối, một bảng phía bên trái (bảng 1) một bảng bên phải (bảng 2) từ khóa JOIN (Chi huyết cú pháp phía dưới) các kiểu JOIN trong SQL bao gồm có:
inner join Trả về các dòng hình thành vì chưng cặp bản ghi của hai bảng, với điều kiện cặp phiên bản ghi đầu tiên (thuộc bảng 1, bảng bên trái) có một trường dữ liệu nào đó để đối chiếu bằng với giá trị của một trường dữ liệu chỉ ra trong bản ghi (record) thứ 2 (bảng 2, bảng bên phải). (nhớ lại phép giao nhị tập hợp) left join Mọi bản ghi bảng phía trái được trả về, phiên bản ghi nào tương xứng với phiên bản ghi bên nên thì nó được bổ sung cập nhật thêm tài liệu từ bản ghi bảng bên đề xuất (nếu không có thì nhấn NULL) right join Mọi phiên bản ghi bảng bên đề nghị được trả về, sau bổ sung dữ liệu tương xứng từ bảng mặt trái. outer join (full join) mọi phiên bản ghi sống bảng trái cùng bảng phải kết hợp lại
Hình ảnh trực quan cho những trường phù hợp JOIN vào SQL

Quy tắc chung viết join ... On : bảng trái là bảng nằm cạnh trái (phía trước) tự khóa join,bảng phái là bảng sau (bên phải) từ khóa join, trong mệnh đề join thì điều kiện phối hợp vếtsau trường đoản cú khóa on
Sử dụng INNER JOIN trong SQL
Cú pháp cơ phiên bản như sau:
SELECT ...FROM bảng_trái INNER JOIN bảng_phảiON điều_kiện_khớp_nối

trong những số đó bảng Donhang là bảng trái vì bên trái từ khóa INNER JOIN, Khachhang là bảng phải. Biểu thức sau từ bỏ khóa ON rõ ràng ở lấy ví dụ này là Donhang.KhachhangID = Khachhang.KhachhangID là biểu thức khớp nối. Từ trên đây SQL rước ghi trong Donhang, sau đó kiểm tra trong Khachhang coi có phiên bản ghi nào thỏa mãn mệnh đề ON. Giả dụ thỏa mãn, hai bản ghi từ nhì bảng sẽ phối kết hợp lại với trả về (dùng select đế lấy).
Kết quả chạy thử:
Ví dụ INNER JOIN tía bảng trong SQL
Bạn rất có thể viết truy tìm vấn phức tạp, thực hiện INNER JOIN với tía bảng khác biệt - phối kết hợp dữ liệu lại. Giả sử có tía bảng B1,B2,B3 thì chúng ta có thể viết theo phía B1 với B2 inner join với nhau (sẽ tạo ra dữ liệu tam), dữ liệu tạm này như là một trong những bảng tiếp tục inner join cùng với B3. Bằng phương pháp như vậy bố bảng sẽ phối kết hợp lại với nhau.
SELECT Donhang.DonhangID, Khachhang.HoTen, Shippers.Hoten AS TenShipperFROM (Donhang INNER JOIN Khachhang ON Donhang.KhachhangID = Khachhang.KhachhangID)INNER JOIN Shippers ON Donhang.ShipperID = Shippers.ShipperID lấy ví dụ trên bố bảng Donhang, Khachhang, Shippers vẫn kết phù hợp với nhau do inner join.
(Donhang INNER JOIN Khachhang ON Donhang.KhachhangID = Khachhang.KhachhangID) là phối kết hợp bởi Donhang cùng Khachhang nó sẽ tạo nên ra một bảng tạm. Bảng trợ thời này liên tục INNER JOIN với Shippers
kiểm tra
Kết quả
10248 | Nguyễn Bích Thủy | GoViet |
10249 | Hoàng Thị Bích Ngọc | Grab |
10250 | Phạm Thu Huyền | Bee |
10251 | Trần Diễm Thùy Dương | Grab |
... | ... | ... |
Nếu các bạn dùng tự khóa AS hoàn toàn có thể cú pháp đã ngắn gọi và dễ đọc, chính câu truy tìm vấn trên chúng ta cũng có thể viết như sau mà công dụng tương đương
SELECT t.DonhangID, t.HoTen, s.Hoten AS TenShipperFROM (Donhang INNER JOIN Khachhang ON Donhang.KhachhangID = Khachhang.KhachhangID) as tINNER JOIN Shippers as s ON t.ShipperID = S.ShipperID Bảng Shippers viết tên tắt là s, mệnh đề (Donhang INNER JOIN Khachhang ON Donhang.KhachhangID = Khachhang.KhachhangID) đang như là một bảng bảng này viết tên tắt là t