SQL Cho VBA Với Mệnh đề Truy Vấn SQL_SELECT... INNER JOIN

Trong bài viết này, chúng ta sẽ tìm hiểu câu lệnh SQL INNER JOIN cho VBA để kết hợp nhiều bảng dữ liệu trong SQL dựa trên một trường (cột) chung giữa các bảng. Cùng xem nhé!

XEM NHANH BÀI VIẾT

  • 1 SELECT SYNTAX
  • 2 Hiện thông tin một vài trường dữ liệu tùy chọn với câu lệnh INNER JOIN
  • 3 Hiện thông tin với nhiều kết nối INNER JOIN

SELECT SYNTAX

SELECT [tên cột] (nhiều cột) FROM [tên bảng tính 1] INNER JOIN [tên bảng tính 2] ON [tên bảng tính 1].[tên cột] = [tên bảng tính 2].[tên cột]

Trong đó:

  • SELECT [tên cột] (nhiều cột): Lựa chọn một hoặc nhiều cột từ bảng 1 hoặc bảng 2 để hiển thị.
  • FROM [tên bảng tính 1]: Xác định bảng chính để bắt đầu truy vấn.
  • INNER JOIN [tên bảng tính 2]: Sử dụng phép INNER JOIN để kết hợp bảng 1 với bảng 2. INNER JOIN chỉ trả về các hàng có giá trị khớp ở cả hai bảng.
  • ON [tên bảng tính 1].[tên cột] = [tên bảng tính 2].[tên cột]: Điều kiện kết hợp dựa trên một cột chung giữa bảng 1 và bảng 2. Ví dụ, cột chung có thể là id hay membership_number trong cả hai bảng.
SQL cho VBA với mệnh đề truy vấn SQL_SELECT... INNER JOIN

Hiện thông tin một vài trường dữ liệu tùy chọn với câu lệnh INNER JOIN

Bước 1: Đặt tên cho các bảng tính trong từng sheets phía dưới và tên các trường dữ liệu

SQL

Bước 2: Viết câu lệnh SQL theo cú pháp Select… Inner Join

SELECT [Orders].[Order ID], [Orders].[Customer Id],[Customers].[Last Name], [Customers].[First Name],[Orders].[Shipping Fee] FROM [Orders] INNER JOIN [Customers] ON [Orders].[Customer ID] = [Customers].[ID]
  • TỪ KHÓA SELECT: CHỌN CÁC TRƯỜNG DỮ LIỆU [Order ID], [Shipping Fee] trong bảng [ORDERS] và các trường [Customer Id], [Last Name], [First Name] trong bảng [CUSTOMERS].
  • TỪ KHÓA FROM: LẤY THÔNG TIN TỪ BẢNG [ORDERS] (BẢNG 1)
  • TỪ KHÓA INNER JOIN: KẾT HỢP LẤY THÔNG TIN TỪ BẢNG [CUSTOMERS] (BẢNG 2)
  • TỪ KHÓA ON: BẢNG 1 VÀ BẢNG 2 CÓ CHUNG TRƯỜNG [Customer ID]

Bước 3: Thực hiện câu lệnh SQL để hiện thông tin về Mã đơn hàng (trong bảng [Orders]), Mã Khách hàng (trong bảng [Customers]), Tên gọi Khách Hàng (trong bảng [Customers]), Tên Đệm của khách hàng (trong bảng [Customers]), và tiền phí vận chuyển (trong bảng [Orders]) thông qua trường chung là Mã khách hàng. Kết quả như sau:

SQL
Trong VD trên: Thông tin về Khách hàng có ID=2 không hiện ra trong bảng Kết quả. Vì Bảng Orders không có thông tin về khách hàng có ID=2 (chỉ có thông tin về Khách hàng ID =1, 3, 4…).Như vậy Kết nối Inner Join cho 2 bảng là lấy ra phần thông tin chung cho cả 2 bảng thông qua trường khóa ID Customer

Tham khảo khóa học: Truy vấn dữ liệu với SQL

Hiện thông tin với nhiều kết nối INNER JOIN

SELECT [Orders].[Order ID], [Orders].[Customer Id],[Orders].[Order Date],[Customers].[Last Name], [Customers].[First Name],[Orders].[Shipping Fee],[HangHoa].[Shipper ID], [HangHoa].[TEN_HH] FROM (([Orders] INNER JOIN [Customers] ON [Orders].[Customer ID] = [Customers].[ID]) INNER JOIN [HangHoa] ON [Orders].[Shipper ID] = [HangHoa].[Shipper ID])
SQL
Đây là 3 bảng [Order], [Customer] và [HangHoa]. Bảng [Order] và [Customer] liên kết với nhau bằng Mã khách hàng. Còn bảng [Order] và bảng [HangHoa] liên kết với nhau bằng Mã Shipper ID

Từ khóa » Câu Lệnh Join Trong Python