SQL cho VBA với mệnh đề truy vấn SQL_SELECT... INNER JOIN

Nguyen thi huyen trang
Nguyen thi huyen trang
May 09 2022

Xem tài liệu đính kèm VBA for SQL references hoặc VBA for connection with SQL

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]

Ở đây ta có thể chọn 1 cột hoặc nhiều cột trong bảng tính 1 và bảng tính 2. Hai bảng tính này được liên kết với nhau thông qua 1 trường (cột) dữ liệu chung

HOẶC KẾT HỢP NHIỀU BẢNG TÍNH CÓ CHUNG TRƯỜNG DỮ LIỆU NHƯ SAU

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])
INNER JOIN [tên bảng tính 3]
ON [tên bảng tính 1].[tên cột] = [tên bảng tính 3].[tên cột])
...

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 trong SQL

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 trong SQL

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

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

Hướng dẫn về đối tượng Range trong VBA cơ bản

Hướng dẫn về đối tượng Range trong VBA cơ bản

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách viết các toán tử so sánh trong VBA

Hướng dẫn cách viết các toán tử so sánh trong VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội