Tham gia bảng excel

Với yêu cầu phía trên, bạn tiến hành hợp nhất 2 bảng Đơn đặt hàng và Chi tiết đơn đặt hàng dựa trên OrderID

Trên tab Trang chủ trong Power Query Editor, trong menu thả xuống Hợp nhất Truy vấn, bấm Hợp nhất Truy vấn dưới dạng Mới

Select the general column connection between 2 table, in case is OrderID

Tham gia bảng excel
Tham gia bảng excel

Ghi chú. Phần Join Kind có thể khiến một số bạn bối rối thì mình có thể giải thích thêm bằng ảnh biểu đồ ven như sau

Tham gia bảng excel
Tham gia bảng excel

  • INNER THAM GIA bạn sẽ nhận được kết quả là những giá trị vừa ở bảng 1 và vừa ở bảng 2
  • FULL OUTER (ĐẦY ĐỦ THAM GIA) bạn sẽ nhận được toàn bộ kết quả của các bảng
  • CHỖ NỐI BÊN TRÁI. Với LEFT OUTER (hay LEFT JOIN) bạn sẽ nhận được kết quả là toàn bộ bảng 1 (bảng bên trái LEFT JOIN) và các giá trị ở bảng 2 có mã (Key) tồn tại ở bảng 1
  • QUYỀN THAM GIA. Với RIGHT OUTER (RIGHT JOIN) bạn sẽ nhận được kết quả là toàn bộ bảng 2 (bảng bên phải RIGHT JOIN) và các giá trị ở bảng 1 có mã (Key) tồn tại ở bảng 2

Trong trường hợp này, mình lựa chọn Left Outer join. Sau đó nhấp vào OK và kết quả trả về sẽ giải quyết bài toán trên

Mệnh đề JOIN được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một cột có liên quan giữa chúng

Hãy xem xét một lựa chọn từ bảng "Đơn hàng"

OrderIDCustomerIDOrderDate1030821996-09-1810309371996-09-1910310771996-09-20

Sau đó, hãy xem một lựa chọn từ bảng "Khách hàng"

Khách hàngIDKhách hàngTênLiên hệTênQuốc gia1Alfreds FutterkisteMaria AndersĐức2Ana Trujillo Emparedados y heladosAna TrujilloMexico3Antonio Moreno TaqueríaAntonio MorenoMexico

Lưu ý rằng cột "CustomerID" trong bảng "Orders" đề cập đến "CustomerID" trong bảng "Customers". Mối quan hệ giữa 2 bảng trên là cột "CustomerID"

Sau đó, chúng ta có thể tạo câu lệnh SQL sau (có chứa INNER JOIN), chọn các bản ghi có giá trị khớp trong cả hai bảng

Thí dụ

CHỌN Đơn đặt hàng. OrderID, khách hàng. Tên khách hàng, đơn đặt hàng. OrderDate
TỪ Đơn đặt hàng
INNER THAM GIA KHÁCH HÀNG TRÊN Đơn đặt hàng. CustomerID=Khách hàng. ID khách hàng;

Tự mình thử »

và nó sẽ tạo ra một cái gì đó như thế này

OrderIDCustomerNameOrderDate10308Ana Trujillo Emparedados y helados9/18/199610365Antonio Moreno Taquería11/27/199610383Xung quanh Horn12/16/199610355Xung quanh Horn15/11/199610278Berglunds snabbköp8/12/1996



Các loại THAM GIA SQL khác nhau

Dưới đây là các loại THAM GIA khác nhau trong SQL

  • (INNER) JOIN. Trả về các bản ghi có giá trị khớp trong cả hai bảng
  • LEFT (OUTER) JOIN. Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải
  • RIGHT (OUTER) JOIN. Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi phù hợp từ bảng bên trái
  • FULL (OUTER) JOIN. Trả về tất cả các bản ghi khi có sự trùng khớp trong bảng bên trái hoặc bên phải

Tham gia bảng excel
 
Tham gia bảng excel
 
Tham gia bảng excel
 
Tham gia bảng excel


Kiểm tra bản thân với các bài tập

Tập thể dục

Chèn các phần còn thiếu trong mệnh đề JOIN để nối hai bảng OrdersCustomers, sử dụng trường JOIN0 trong cả hai bảng làm mối quan hệ giữa hai bảng

Tên của trường được kết nối. Các trường phải có cùng kiểu dữ liệu và chứa cùng kiểu dữ liệu nhưng không cần phải có cùng tên

tổng hợp

Bất kỳ toán tử so sánh quan hệ nào: "=," "<," ">," "<=," ">=," hoặc "<>."


Chú thích

Sử dụng phép toán LEFT JOIN để tạo một kết nối bên ngoài bên trái. Nối bên ngoài trái bao bao gồm tất cả các bản ghi từ đầu (trái) của bảng thứ hai, thậm chí chí nếu không có giá trị nào phù hợp dành cho các bản ghi trong bảng thứ hai (phải)

Sử dụng phép toán RIGHT JOIN để tạo một kết nối bên ngoài bên phải. Nối bên ngoài phải bao gồm tất cả các bản ghi từ thứ hai (phải) của hai bảng, thậm chí chí nếu không có giá trị nào phù hợp dành cho các bản ghi trong bảng thứ nhất (trái)

Ví dụ. bạn có thể sử dụng TRÁI THAM GIA với các bảng Phòng cấm (trái) và Nhân viên (phải) để chọn tất cả các phòng cấm, bao gồm những phòng cấm không được chỉ định nhân viên nào. Để chọn tất cả nhân viên, bao gồm những người không được chỉ định cho phòng ban, bạn sẽ sử dụng RIGHT JOIN

Ví dụ sau đây để biết cách bạn có thể liên kết các bảng Sản phẩm và Danh mục trên trường CategoryID. Truy vấn tạo ra một danh sách chứa tất cả các danh mục, bao gồm những danh mục không chứa sản phẩm

CHỌN Tên danh mục, Tên sản phẩm TỪ danh mục TRÁI THAM GIA Sản phẩm TRÊN danh mục. CategoryID = Sản phẩm. Thể loại ID;

Trong ví dụ này, CategoryID là trường liên kết nhưng không được đưa vào kết quả truy vấn vì trường này không được đưa vào câu lệnh CHỌN. Để bao gồm các trường được kết nối, nhập tên trường vào lệnh SELECT — trong trường hợp này là Categories. ID danh mục .

Để tạo một truy vấn chỉ bao gồm các bản ghi có dữ liệu trong các trường được kết nối giống nhau, hãy sử dụng phép toán INNER JOIN

  • Có thể lồng LEFT JOIN hoặc RIGHT JOIN vào INNER JOIN nhưng không thể lồng INNER JOIN vào LEFT JOIN hoặc RIGHT JOIN. Vui lòng xem mục về cách lồng trong chủ đề INNER JOIN để biết cách lồng các phép kết nối bên trong các phép kết nối khác

  • Bạn có thể liên kết nhiều mệnh đề TRÊN. Vui lòng xem phần thảo luận về liên kết mệnh đề trong chủ đề INNER JOIN để biết cách thực hiện thao tác này