Gộp 2 Bảng Trong Sql

Cách truy hỏi vấn các bảng, sử dụng những loại JOIN như LEFT JOIN, RIGHT JOIN, INNER JOIN trong SQL để lấy dữ liệu kết hợp


Truy vấn nhiều bảng, từ khớp nối những bảng

Một trong nhưng tiện ích chính của SQL là khả năng phối kết hợp dữ liệu từ hai hay các bảng lại cùng với nhau. Việc phối hợp các bảng lại vì vậy gọi là JOIN, SQL sẽ tạo ra một bảng trong thời điểm tạm thời chứa dữ liệu hiệu quả từ JOIN.

Bạn đang xem: Gộp 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ì sinh hoạt mệnh đề from chỉ ra tên hai bảng cần liên kết (cách nhau bởi dấu phảy), với ở 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 nghỉ ngơi câu truy hỏi 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 bạn dạng ghi (dòng dữ liệu): phiên bản ghi nghỉ ngơi bảng Donhang, bạn dạng ghi làm việc Khachhang bao gồm cùng giá trị KhachhangID sẽ kết hợp với nhau để tạo nên dòng dữ liệu trong thời điểm tạm thời để select chọn:

*

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

Ở đây gồm một tệp tin CSDL mẫu dạng SQLite, bạn có thể tải về nghiên cứu, thực hành: csdl SQLite mẫu. Hoặc thực hiện trực tiếp lao lý Online: Chạy SQL

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

Từ khóa as bạn đã từng dùng làm đặ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 hoàn toàn có thể dùng as để đặt tên tùy biến, mục đích để câu truy nã vấn phức tạp, nhiều năm trở lên ngắn gọn, dễ nhìn đọc hơn.

Ví dụ trên viết bao gồm đặ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
test
Bảng Donhang đã thay tên thành o, bảng Khachhang thành c.

Các loại JOIN

Cách khớp nối bảng làm việc trên (sử dụng đk khớp nối nghỉ ngơi mệnh đề where) sử dụng với khớp nối thông thường, thực tế SQL sử dụng từ khóa join với nhiều cách kết nối bảng khách nhau. Tất cả có:

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

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

*

Quy tắc phổ biến viết join : bảng trái là bảng nằm cạnh sát 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ì điều kiện phối hợp vếtsau trường đoản cú 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: Add Tên Miền Vào Google Site Chi Tiết, Đơn Giản Nhất, Hướng Dẫn Kết Nối Tên Miền Với Google Sites

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

Ví dụ:


HoTenDonhangID
Bùi nam Khánh
Bùi Thị Kim Oanh10266
Bùi Thị Kim Oanh10270
Hồ Nguyễn Minh Khuê
......
quan sát công dụng ta thấy các HoTen làm việc bảng bên trái được mang ra, kế tiếp DonhangID sinh sống bảng bên phải cân xứng được dùng để làm kết hợp với HoTen nếu không tồn tại giá trị nào tương xứng thì nhận giá trị null

Sử dụng RIGHT JOIN

Trường hợp này hoạt động giống với LEFT JOIN theo chiều ngược lại.

Ví dụ:

SELECT Donhang.OrderID, NhanVien.Ten, NhanVien.HoFROM DonhangRIGHT JOIN NhanVienON Donhang.NhanvienID = NhanVien.NhanvienIDORDER BY Donhang.DonhangID chạy thử

FULL OUTER JOIN

Xét tất cả các kết quả, với SQLite không cung ứng (có thể thay thế 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 những bảngCác loại Join