LẤY DỮ LIỆU TỪ 3 BẢNG TRONG SQL

Cách truy nã vấn các bảng, áp dụng những một số loại JOIN nhỏng LEFT JOIN, RIGHT JOIN, INNER JOIN vào Squốc lộ để mang tài liệu kết hợp


Truy vấn nhiều bảng, Tự khớp nối các bảng

Một trong mà lại công dụng chủ yếu của SQL là tài năng phối kết hợp tài liệu tự hai tuyệt những bảng lại cùng nhau. Việc phối kết hợp các bảng lại điều đó gọi là JOIN, Squốc lộ sẽ tạo ra một bảng trong thời điểm tạm thời cất dữ liệu tác dụng trường đoản cú JOIN.

Bạn đang xem: Lấy dữ liệu từ 3 bảng trong sql

Khớp nối nhị bảng

Khớp nối hai bảng với nhau Khi tróc nã vấn thì làm việc mệnh đề from chỉ ra thương hiệu hai bảng đề xuất kết nối (giải pháp nhau vày vết phảy), cùng ngơi nghỉ mệnh đề where là điều kiện khớp nối.

Ví dụ:


SELECT Donhang.DonhangID, Khachhang.Hoten, Donhang.NgaydathangFROM Donhang, KhachhangWHERE Donhang.KhachhangID=Khachhang.KhachhangID
Ở mệnh đề where làm việc câu truy tìm vấn trên thì đoạn mã Donhang.KhachhangID=Khachhang.KhachhangID dùng để làm khớp nối bảng.

Mọi cặp phiên bản ghi (mẫu dữ liệu): bản ghi ở bảng Donhang, bản ghi ở Khachhang bao gồm cùng quý giá KhachhangID sẽ kết phù hợp với nhau để tạo thành mẫu tài liệu trong thời điểm tạm thời nhằm select chọn:

*

Kết trái trên chúng ta thấy tên quý khách hàng (Hoten) lấy ở bảng Khachhang, với từng quý khách lấy được thì những ngày mua hàng cùng ID của giao dịch (Ngaydathang,DonhangID) của khách hàng đó được mang ở bảng Donhang

Tại trên đây tất cả một file DataBase mẫu mã dạng SQLite, bạn cũng có thể sở hữu về phân tích, thực hành: DataBase SQLite mẫu. Hoặc thực hiện thẳng công cụ Online: Chạy SQL

Đặt lại thương hiệu bảng khi truy nã vấn với AS

Từ khóa as bạn đã từng dùng để viết tên cột tùy vươn lên là, với tên bảng, bảng trong thời điểm tạm thời cũng có thể sử dụng as để đặt tên tùy vươn lên là, mục đích nhằm câu truy vấn vấn phức tạp, lâu năm trở lên nlắp gọn, đọc dễ dàng hơn.

ví dụ như trên viết gồm đặt thêm tên bảng tùy biến


SELECT o.DonhangID, c.Hoten, o.NgaydathangFROM Donhang As o, Khachhang AS cWHERE o.KhachhangID=c.KhachhangID
Chạy thử
Bảng Donhang vẫn đổi tên thành o, bảng Khachhang thành c.

Các đẳng cấp JOIN

Cách khớp nối bảng sinh sống bên trên (sử dụng điều kiện khớp nối ngơi nghỉ mệnh đề where) áp dụng với khớp nối thường thì, thực tế Squốc lộ sử dụng từ bỏ khóa join với rất nhiều cách kết nối bảng khách hàng nhau. Gồm có:

inner join : trả về những bạn dạng ghi có mức giá trị cân xứng thân nhì bảng (lưu giữ lại phép giao nhì tập hợp). left join : số đông bạn dạng ghi bảng phía trái được trả về, bản ghi như thế nào phù hợp cùng với phiên bản ghi mặt nên thì nó được bổ sung cập nhật thêm tài liệu từ bạn dạng ghi bảng bên buộc phải (ví như không có thì nhấn NULL) right join : phần lớn bản ghi bảng bên buộc phải được trả về, sau bổ sung tài liệu cân xứng từ bảng bên trái. outer join : (full join) phần nhiều bản ghi nghỉ ngơi bảng trái với bảng phải phối hợp lại

Tấm hình trực quan cho các trường hợp JOIN trên:

*

Quy tắc bình thường viết join : bảng trái là bảng nằm bên 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, vào mệnh đề join thì ĐK phối hợp vếtsau trường đoản cú khóa on

Sử dụng INNER JOIN


Xem lại hình ảnh về Inner Join, nó tương đương với phxay tân oán giao tập thích hợp.

Xem thêm: Cách Đổi 1Km/H Bằng Bao Nhiêu M/S, 1M/S Bằng Bao Nhiêu Km/H

inner join chọn những bản ghi mà lại cần cân xứng sinh hoạt tất cả những bảng


*

Kết quả

DonhangIDHoTenTenShipper
10248Nguyễn Bích ThủyGoViet
10249Hoàng Thị Bích NgọcGrab
10250Phạm Thu HuyềnBee
10251Trần Diễm Thùy DươngGrab
.........

Sử dụng LEFT JOIN

*

LEFT JOIN trả về tất cả bạn dạng ghi bảng phía bên trái tất cả bản ghi kia không tương ứng cùng với bảng mặt phải, còn bảng mặt cần thì những bản ghi nào tương xứng với bảng trái thì tài liệu bạn dạng ghi này được dùng để kết phù hợp với bạn dạng ghi bảng trái, nếu không có dữ liệu đã NULL

Ví dụ:


HoTenDonhangID
Bùi Nam Khánh
Bùi Thị Kyên ổn Oanh10266
Bùi Thị Kim Oanh10270
Hồ Nguyễn Minh Khuê
......
Quan gần cạnh tác dụng ta thấy phần đa HoTen sinh sống bảng bên trái được lấy ra, sau đó DonhangID sống bảng mặt nên tương xứng được dùng để làm kết phù hợp với HoTen nếu không có quý hiếm như thế nào cân xứng thì nhận quý hiếm null

Sử dụng RIGHT JOIN

Trường hòa hợp này chuyển động giống như với LEFT JOIN theo chiều ngược trở lại.

Ví dụ:

SELECT Donhang.OrderID, NhanVien.Ten, NhanVien.HoFROM DonhangRIGHT JOIN NhanVienON Donhang.NhanvienID = NhanVien.NhanvienIDORDER BY Donhang.DonhangID Chạy test

FULL OUTER JOIN

Xét toàn bộ các kết quả, với SQLite không cung cấp (có thể thay thế sửa chữa bằng LEFT JOIN kết hợp với UNION)

SELECT Khachhang.HoTen, Donhang.DonhangIDFROM KhachhangFULL OUTER JOIN Donhang ON Khachhang.KhachhangID=Donhang.KhachhangIDORDER BY Khachhang.HoTen Chạy test
Mục lục bài viết
Nối những bảngCác đẳng cấp Join