Select dữ liệu từ 2 bảng trong sql

     

Cách tầm nã vấn các bảng, sử dụng các loại JOIN như LEFT JOIN, RIGHT JOIN, INNER JOIN trong SQL để đưa dữ 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 nhưng lợi ích chính của SQL là khả năng kết hợp dữ liệu từ hai hay nhiều bảng lại với nhau. Việc phối hợp các bảng lại bởi vậy gọi là JOIN, SQL sẽ tạo nên ra một bảng tạm thời chứa dữ liệu công dụng từ JOIN.

Bạn đang xem: Select dữ liệu từ 2 bảng trong sql

Khớp nối hai bảng

Khớp nối nhị bảng cùng với nhau lúc truy vấn thì làm việc mệnh đề from chỉ ra rằng tên nhị bảng cần kết nối (cách nhau vì chưng dấu phảy), với ở mệnh đề where là đk khớp nối.

Ví dụ:


SELECT Donhang.DonhangID, Khachhang.Hoten, Donhang.NgaydathangFROM Donhang, KhachhangWHERE Donhang.KhachhangID=Khachhang.KhachhangID
Ở mệnh đề where nghỉ ngơi câu tầm nã vấn bê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 (dòng dữ liệu): phiên bản ghi nghỉ ngơi bảng Donhang, bản ghi làm việc Khachhang bao gồm cùng quý hiếm KhachhangID đang kết hợp với nhau để tạo nên dòng dữ liệu tạm thời để select chọn:

*

Kết quả trên bạn thấy tên khách hàng (Hoten) mang ở bảng Khachhang, cùng với mỗi quý khách lấy được thì các ngày mua hàng và ID của deals (Ngaydathang,DonhangID) của doanh nghiệp đó được rước ở bảng Donhang

Ở đây có một tệp tin CSDL chủng loại dạng SQLite, bạn cũng có thể tải về nghiên cứu, thực hành: csdl SQLite mẫu. Hoặc sử dụng trực tiếp phương pháp Online: Chạy SQL

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

Từ khóa as bạn đã từng dùng để đặt tên cột tùy biến, với thương hiệu bảng, bảng tạm thời cũng có thể dùng as để đặt tên tùy biến, mục tiêu để câu truy hỏi vấn phức tạp, dài trở lên ngắn gọn, dễ đọc hơn.

Ví dụ 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 đã đổ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 sống 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ường, thực tiễn SQL thực hiện từ khóa join với vô số cách kết nối bảng khách hàng nhau. Có có:

inner join : trả về các phiên bản ghi có giá trị phù hợp giữa nhị bảng (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ề, bạn dạng ghi nào tương xứng với bản ghi bên bắt buộc thì nó được bổ sung cập nhật thêm tài liệu từ phiên bản ghi bảng bên buộc phải (nếu không có thì nhấn NULL) right join : mọi bản ghi bảng bên phải được trả về, sau bổ sung cập nhật dữ liệu phù hợp từ bảng bên trái. outer join : (full join) mọi bạn dạng ghi làm việc bảng trái và bảng phải kết hợp lại

Hình ảnh trực quan cho các trường hợp JOIN trên:

*

Quy tắc chung viết join : bảng trái là bảng nằm sát trái (phía trước) trường đoản cú 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 kết hợp vếtsau từ bỏ khóa on

Sử dụng INNER JOIN


Xem lại hình hình ảnh về Inner Join, nó như là với phép toán giao tập hợp.

Xem thêm: 15 Lời Chúc Hay Và Ý Nghĩa Nhất Trong Mùa Thi, Lời Chúc Tốt Nghiệp Hay Nhất 2022

inner join chọn các bạn dạng ghi nhưng mà phải phù hợp ở 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ề vớ cả bản ghi bảng phía trái kể cả phiên bản ghi đó không khớp ứng với bảng mặt phải, còn bảng bên buộc phải thì những phiên bản ghi nào tương xứng với bảng trái thì dữ liệu bản ghi kia được dùng để kết hòa hợp với bản ghi bảng trái, nếu không có dữ liệu vẫn NULL

Ví dụ:


HoTenDonhangID
Bùi phái nam Khánh
Bùi Thị Kim Oanh10266
Bùi Thị Kim Oanh10270
Hồ Nguyễn Minh Khuê
......

Xem thêm: Rủ Nhau Đọc Sách Lập Trình Viên, Ebook Code Complete 2 Dịch Sang Tiếng Việt File

quan tiền sát tác dụng ta thấy phần lớn HoTen làm việc bảng phía trái được đem ra, tiếp đến DonhangID sống bảng mặt phải cân xứng được dùng để kết hợp với HoTen nếu không có giá trị nào phù hợp thì nhận quý hiếm null

Sử dụng RIGHT JOIN

Trường vừa lòng này hoạt động giống cùng với LEFT JOIN theo hướng ngược lại.

Ví dụ:

SELECT Donhang.OrderID, NhanVien.Ten, NhanVien.HoFROM DonhangRIGHT JOIN NhanVienON Donhang.NhanvienID = NhanVien.NhanvienIDORDER BY Donhang.DonhangID thử nghiệm

FULL OUTER JOIN

Xét toàn bộ các kết quả, với SQLite không cung ứng (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 thử nghiệm
Mục lục bài viết
Nối nhiều bảngCác mẫu mã Join