Lấy dữ liệu từ 3 bảng trong sql

     

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


Truy vấn những bảng, Tự khớp nối các bảng

Một trong dẫu vậy ích lợi chính của Squốc lộ là tài năng kết hợp dữ liệu tự hai giỏi các bảng lại cùng nhau. Việc phối kết hợp các bảng lại những điều đó Điện thoại tư vấn là JOIN, SQL sẽ tạo ra một bảng trong thời điểm tạm thời chứa tài liệu tác dụng từ bỏ 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 truy tìm vấn thì ở mệnh đề from chỉ ra tên nhị bảng cần kết nối (giải pháp nhau vị vệt phảy), và 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
Tại mệnh đề where nghỉ ngơi câu truy nã 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 (cái dữ liệu): bản ghi nghỉ ngơi bảng Donhang, bản ghi sinh hoạt Khachhang tất cả thuộc quý giá KhachhangID sẽ kết phù hợp với nhau để tạo thành chiếc tài liệu tạm thời nhằm select chọn:

*

Kết quả trên chúng ta thấy thương hiệu quý khách (Hoten) lấy sống bảng Khachhang, với mỗi khách hàng mang được thì những ngày mua hàng cùng ID của deals (Ngaydathang,DonhangID) của người sử dụng đó được lấy nghỉ ngơi bảng Donhang

Tại phía trên gồm một file cơ sở dữ liệu chủng loại dạng SQLite, chúng ta cũng có thể mua về nghiên cứu, thực hành: CSDL SQLite chủng loại. Hoặc thực hiện trực tiếp luật Online: Chạy SQL

Đặt lại tên bảng Lúc tróc nã vấn với AS

Từ khóa as bạn đã từng có lần dùng làm đặt tên cột tùy biến, cùng với tên bảng, bảng tạm thời cũng hoàn toàn có thể dùng as để tại vị tên tùy biến hóa, mục đích để câu tróc nã vấn phức tạp, dài trnghỉ ngơi lên nlắp gọn, dễ nhìn đọc hơn.

lấy ví dụ như trên viết tất cả đặt thêm thương hiệu 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 demo
Bảng Donhang sẽ thay tên thành o, bảng Khachhang thành c.

Các hình dạng JOIN

Cách khớp nối bảng sống bên trên (áp dụng ĐK khớp nối ở mệnh đề where) thực hiện cùng với khớp nối thông thường, thực tiễn Squốc lộ sử dụng tự khóa join cùng với vô số cách thức kết nối bảng khách nhau. Gồm có:

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

Hình ảnh trực quan liêu cho những trường đúng theo JOIN trên:

*

Quy tắc chung viết join : bảng trái là bảng nằm bên trái (phía trước) từ khóa join,bảng phái là bảng sau (bên phải) trường đoản cú khóa join, vào mệnh đề join thì điều kiện phối kết 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ó giống như cùng với phxay toán giao tập đúng theo.

Xem thêm: Hướng Dẫn Tạo Menu Boot 2 Hệ Điều Hành, Tạo Dual Boot Bằng Easybcd 2

inner join chọn những phiên bản ghi nhưng mà đề nghị phù hợp ngơi nghỉ tất cả các 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ề toàn bộ phiên bản ghi bảng phía trái kể cả bạn dạng ghi kia không tương ứng cùng với bảng mặt phải, còn bảng bên bắt buộc thì các phiên bản ghi làm sao phù hợp với bảng trái thì dữ liệu bạn dạng ghi này được dùng để kết hợp với bản ghi bảng trái, trường hợp không có tài liệu sẽ NULL

Ví dụ:


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

Sử dụng RIGHT JOIN

Trường đúng theo này chuyển động tương đương cùng với LEFT JOIN theo hướng ngược chở 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ộ những tác dụng, cùng với SQLite không cung cấp (có thể sửa chữa thay thế bằng LEFT JOIN kết phù 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 hình dạng Join