CÂU LỆNH SELECT NHIỀU BẢNG TRONG SQL

  -  
Access mang lại hostingvietnam.vn 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 coi thêm...Ít hơn

Đôi khi, chúng ta cũng có thể muốn liệt kê các phiên bản ghi vào một bảng hoặc truy tìm vấn với những bạn dạng ghi vào một hoặc những bảng khác để hiện ra một bộ nhiều bạn dạng ghi - danh sách gồm toàn bộ các bản ghi từ hai hoặc các bảng. Đây là mục tiêu của một truy tìm vấn hòa hợp trong Access.

Bạn đang xem: Câu lệnh select nhiều bảng trong sql

Để hiểu truy vấn hợp một phương pháp hiệu quả, trước tiên bạn sẽ làm thân quen với việc thiết kế truy vấn chọn cơ bạn dạng trong Access. Để đọc thêm thông tin về xây dựng truy vấn chọn, hãy xem mục tạo nên truy vấn chọn đơn giản.


Lưu ý: Nội dung trong bài viết này được sử dụng với những cơ sở dữ liệu máy vi tính Access. Bạn không thể tạo hoặc sử dụng truy vấn đúng theo trong cơ sở tài liệu web Access hoặc áp dụng web Access.


Nghiên cứu vớt ví dụ truy tìm vấn thích hợp hoạt động

Nếu chúng ta chưa lúc nào tạo một truy nã vấn đúng theo trước đó, chúng ta cũng có thể thấy có ích khi nghiên cứu một ví dụ chuyển động trong mẫu mã Northwind Access trước tiên. Bạn có thể tìm kiếm chủng loại mẫu Northwind trên trang bắt đầu của Access bởi cách bấm chuột Tệp > Mới hoặc rất có thể trực tiếp tải xuống bạn dạng sao từ địa chỉ này: mẫu mẫu Northwind.

Sau lúc Access mở cơ sở dữ liệu Northwind, hãy bỏ qua biểu mẫu mã hộp thoại đăng nhập lộ diện đầu tiêu, rồi bung rộng chống dẫn hướng. Nhấp chuột phần trên cùng của phòng dẫn hướng, rồi lựa chọn Loại đối tượng để sắp đến xếp toàn bộ các đối tượng người dùng cơ sở tài liệu theo loại. Tiếp theo, bung rộng nhóm Truy vấn và các bạn sẽ thấy một tầm nã vấn có tên là Giao dịch sản phẩm.

Truy vấn hợp rất giản đơn phân biệt cùng với các đối tượng người dùng truy vấn khác bởi vì có biểu tượng đặc biệt y hệt như hai vòng tròn cuộn vào nhau đại diện cho một bộ link từ hai bộ:

*

Không hệt như truy vấn chọn và hành động thông thường, những bảng không tương quan nhau trong truy nã vấn hợp, có nghĩa là không thể áp dụng trình thiết kế truy vấn đồ họa Access để desgin hoặc chỉnh sửa truy vấn hợp. Bạn sẽ gặp vụ việc này nếu mở một truy tìm vấn vừa lòng từ ngăn dẫn hướng; Access đã mở truy hỏi vấn với hiển thị hiệu quả ở dạng coi biểu dữ liệu. Bên dưới lệnh Dạng xem trên tab Trang đầu, bạn sẽ nhận thấy rằng Dạng xem thiết kế sẽ không còn sẵn dùng khi làm việc với tầm nã vấn hợp. Các bạn chỉ bao gồm thể biến đổi giữa Dạng xem biểu dữ liệu với Dạng coi SQL khi thao tác làm việc với truy hỏi vấn hợp.

Để liên tiếp nghiên cứu vãn về lấy ví dụ như truy vấn hòa hợp này, hãy bấm vào Trang đầu > Dạng xem > Dạng xem SQL để xem cú pháp SQL khẳng định truy vấn. Vào hình minh họa này, họ đã thêm một số trong những giãn cách thừa vào SQL để bạn có thể dễ dàng thấy đa phần khác nhau làm cho một tầm nã vấn hợp.



Hãy thuộc nghiên cứu chi tiết cú pháp SQL của truy hỏi vấn phù hợp này tự cơ sở tài liệu Northwind:

SELECT , , , , FROM UNIONSELECT , , , , FROM ORDER BY DESC; Phần thứ nhất và phần thứ tía của câu lệnh SQL này cơ bạn dạng là hai truy vấn chọn. Những truy vấn này truy vấn xuất nhì bộ bạn dạng ghi không giống nhau; một từ bảng Đơn hàng thành phầm và một từ bỏ bảng cài đặt sản phẩm.

Phần sản phẩm công nghệ hai trong câu lệnh SQL này là từ bỏ khóa UNION báo mang lại Access rằng tróc nã vấn này sẽ kết hợp hai bộ phiên bản ghi.

Phần cuối cùng của câu lệnh SQL này khẳng định thứ từ bỏ của các phiên bản ghi được kết hợp bằng phương pháp sử dụng câu lệnh ORDER BY. Trong ví dụ như này, Access đã xếp lắp thêm tự tất cả bản ghi theo trường Ngày đặt đơn hàng theo sản phẩm công nghệ tự bớt dần.


Lưu ý: Truy vấn hợp luôn luôn ở tâm trạng chỉ đọc trong Access; các bạn không thể cố gắng đổi ngẫu nhiên giá trị nào ở dạng xem biểu dữ liệu.


Tạo một truy vấn hợp bằng phương pháp tạo và kết hợp các truy hỏi vấn chọn

Ngay cả khi rất có thể tạo truy nã vấn hợp bằng cách viết trực tiếp cú pháp SQL sống dạng coi SQL, chúng ta có thể thấy dễ dãi hơn khi thiết kế truy vấn một số phần với truy hỏi vấn chọn. Sau đó, chúng ta cũng có thể sao chép cùng dán những phần SQL vào một trong những truy vấn hợp vẫn kết hợp.

Nếu bạn có nhu cầu bỏ qua đọc công việc và cầm vào chính là xem ví dụ, hãy coi mục tiếp theo, coi ví dụ về kiểu cách dựng tróc nã vấn hợp.

Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế truy tìm vấn.

Bấm lưu ban vào bảng có các trường mà bạn muốn đưa vào. Thêm bảng vào cửa ngõ sổ xây dựng truy vấn.

Trong cửa ngõ sổ xây dựng truy vấn, hãy bấm lưu ban vào từng trường mà bạn muốn bao gồm. Khi bạn chọn trường, hãy bảo đảm an toàn rằng các bạn thêm thuộc số trường, trong và một thứ tự mà chúng ta thêm vào truy hỏi vấn chọn khác. Hết sức chăm chú đến kiểu tài liệu của trường và đảm bảo an toàn rằng chúng tất cả kiểu dữ liệu tương thích hợp với ngôi trường trong và một vị trí, trong truy tìm vấn khác mà ai đang kết hợp. Ví dụ: nếu truy vấn lựa chọn đầu tiên của người sử dụng có năm trường, trường trước tiên chứa tài liệu ngày/thời gian, hãy đảm bảo rằng mỗi truy vấn lựa chọn khác mà ai đang kết hợp cũng có thể có năm trường, trường đầu tiên chứa dữ liệu ngày/thời gian v.v.

Bạn có thể tùy ý thêm tiêu chí vào những trường của mình bằng cách nhập biểu thức phù hợp vào mặt hàng Tiêu chí của lưới trường.

Sau khi đang hoàn tất việc thêm ngôi trường và tiêu chuẩn trường, bạn nên chạy truy vấn lựa chọn và xem lại áp ra output của truy nã vấn đó. Trên tab Thiết kế, trong team Kết quả, click chuột Chạy.

Chuyển tróc nã vấn sang dạng coi Thiết kế.

Lưu truy vấn vấn lựa chọn và để truy vấn mở.

Lặp lại thủ tục này cho từng truy vấn lựa chọn mà bạn muốn kết hợp.

Giờ đây, bạn đã tạo các truy vấn lựa chọn của mình, đã tới khi kết hợp các truy vấn ấy. Trong cách này, chúng ta tạo tầm nã vấn hợp bằng cách sao chép cùng dán các câu lệnh SQL.

Trên tab Tạo, trong team Truy vấn, bấm Thiết kế truy nã vấn.

Trên tab Thiết kế, trong nhóm Truy vấn, bấm chuột Kết hợp. Access ẩn cửa ngõ sổ xây cất truy vấn và hiển thị tab đối tượng người tiêu dùng dạng xem SQL. Dịp này, tab đối tượng người sử dụng dạng coi SQL là trống.

Hãy bấm chuột tab cho truy vấn chọn trước tiên mà bạn muốn kết đúng theo trong truy vấn hợp.

Trên tab Trang đầu, nhấp chuột Dạng xem > Dạng xem SQL.

Sao chép câu lệnh SQL mang lại truy vấn chọn. Click chuột tab dành riêng cho truy vấn hợp các bạn đã ban đầu tạo trước đó.

Dán câu lệnh SQL mang lại truy vấn chọn vào tab đối tượng của dạng coi SQL của tầm nã vấn hợp.

Xóa vứt dấu chấm phẩy (;) sinh hoạt cuối câu lệnh SQL của truy vấn vấn chọn.

Nhấn phím Enter để di chuyển con trỏ xuống một dòng, rồi nhập UNION vào dòng xoáy mới.

Hãy bấm vào tab đến truy vấn chọn tiếp theo sau mà bạn muốn kết thích hợp trong truy vấn vấn hợp.

Lặp lại từ cách 5 tới cách 10 cho tới khi bạn đã sao chép và dán tất cả câu lệnh SQL cho truy vấn lựa chọn vào trong cửa sổ dạng coi SQL của tầm nã vấn hợp. Không xóa khỏi dấu chấm phẩy hoặc nhập bất kể ký trường đoản cú gì sau câu lệnh SQL mang lại truy vấn lựa chọn cuối cùng.

Trên tab Thiết kế, trong đội Kết quả, bấm Chạy.

Kết quả của tróc nã vấn vừa lòng sẽ xuất hiện thêm ở Dạng coi biểu dữ liệu.

Xem ví dụ về kiểu cách dựng tróc nã vấn hợp

Đây là ví dụ chúng ta có thể tạo lại vào cơ sở dữ liệu mẫu Northwind. Truy hỏi vấn phù hợp này thu thập tên người từ bảng người sử dụng và kết phù hợp với tên fan từ bảng bên cung cấp. Nếu bạn có nhu cầu làm theo, hãy thực hiện công việc này trong phiên bản sao cơ sở tài liệu mẫu Northwind của mình.



Đây là mọi bước cần thiết để thành lập ví dụ này:

Tạo nhì truy vấn chọn mang tên là truy hỏi vấn_1 và Truy vấn_2 với các bảng quý khách hàng và Nhà cung cấp tương ứng theo vật dụng tự có tác dụng nguồn dữ liệu. áp dụng trường Tên và Họ có tác dụng giá trị hiển thị.

Tạo một truy hỏi vấn mới mang tên là truy vấn vấn_3 không có nguồn dữ liệu ban đầu, rồi click chuột lệnh Kết hợp bên trên tab Thiết kế để mang truy vấn này vào truy vấn vấn hợp.

Sao chép và dán những câu lệnh SQL từ truy vấn vấn_1 cùng Truy vấn_2 vào truy tìm vấn_3. Đảm bảo vứt bỏ dấu chấm phẩy quá và cung cấp từ khóa UNION. Sau đó, bạn cũng có thể kiểm tra tác dụng của mình sinh sống dạng xem biểu dữ liệu.

Thêm vào mệnh đề xếp thiết bị tự vào một trong các truy vấn, rồi dán câu lệnh ORDER BY vào dạng coi SQL tầm nã vấn hợp. Chú ý rằng trong truy tìm vấn_3, truy tìm vấn hợp, lúc xếp đồ vật tự được đính thêm, trước tiên, các dấu chấm phẩy, tiếp đến là tên bảng sẽ bị nockout bỏ ngoài tên trường.

SQL ở đầu cuối sẽ phối kết hợp và sắp tới xếp những tên dùng cho ví dụ như truy vấn thích hợp này là như sau:

SELECT Customers.Company, Customers., Customers.FROM CustomersUNIONSELECT Suppliers.Company, Suppliers., Suppliers.FROM SuppliersORDER BY , ; nếu khách hàng viết cú pháp SQL một cách rất đơn giản dàng, chúng ta cũng có thể chắc chắn viết trực tiếp câu lệnh SQL của riêng biệt mình mang lại truy vấn hợp vào dạng xem SQL. Mặc dù nhiên, bạn có thể thấy bổ ích khi làm theo cách thức tiếp cận về xào luộc và dán SQL từ các đối tượng người dùng truy vấn khác. Từng tróc nã vấn hoàn toàn có thể phức tạp hơn những so với những ví dụ tróc nã vấn chọn đơn giản dễ dàng được thực hiện tại đây. Đây hoàn toàn có thể là lợi thế của người sử dụng khi tạo và bình chọn từng truy nã vấn một cách cẩn trọng trước khi kết hợp các truy hỏi vấn trong truy vấn vấn hợp. Trường hợp truy vấn hòa hợp không chạy, bạn cũng có thể điều chỉnh từng truy nã vấn riêng biệt lẻ cho tới khi thành công, rồi xây cất lại truy hỏi vấn hợp của chính mình bằng cú pháp đúng.

Xem lại những mục còn lại của nội dung bài viết này để tham khảo thêm các mẹo và túng kíp về kiểu cách sử dụng truy vấn vấn hợp.


Trong ví dụ nghỉ ngơi mục trước đó áp dụng cơ sở tài liệu Northwind, chỉ kết hợp được tài liệu từ hai bảng. Mặc dù nhiên, chúng ta có thể kết hợp bố hoặc những bảng rất thuận lợi trong một truy hỏi vấn hợp. Ví dụ: dựng trên lấy ví dụ trước, bạn cũng có thể cũng mong muốn kèm theo thương hiệu của nhân viên cấp dưới trong áp ra output truy vấn. Chúng ta có thể thực hiện tác vụ đó bằng phương pháp thêm một truy nã vấn thứ tía và kết hợp với câu lệnh SQL trước đó với từ bỏ khóa UNION bổ sung cập nhật như chũm này:

SELECT Customers.Company, Customers., Customers.FROM CustomersUNIONSELECT Suppliers.Company, Suppliers.

Xem thêm: Tuổi Thọ Của Ổ Cứng Ssd - Ổ Cứng Ssd Có Thể Sống Bao Lâu

, Suppliers.FROM SuppliersUNIONSELECT Employees.Company, Employees., Employees.FROM EmployeesORDER BY , ; khi chúng ta xem tác dụng ở dạng xem biểu dữ liệu, tất cả nhân viên sẽ tiến hành liệt kê thuộc tên công ty mẫu, vốn hoàn toàn có thể không nên rất hữu ích. Nếu bạn muốn trường đó cho thấy thêm một tín đồ là nhân viên cấp dưới nội bộ, trường đoản cú nhà cung cấp hoặc từ khách hàng, bạn có thể đưa vào giá bán trị cố định và thắt chặt thay mang lại tên công ty. Đây là hình ảnh của SQL:

SELECT "Customer" As Employment, Customers., Customers.FROM CustomersUNIONSELECT "Supplier" As Employment, Suppliers., Suppliers.FROM SuppliersUNIONSELECT "In-house" As Employment, Employees., Employees.FROM EmployeesORDER BY , ; Đây là giao diện hiệu quả sẽ xuất hiện thêm ở dạng xem biểu dữ liệu. Access đã hiển thị năm bạn dạng ghi ví dụ như này:

Công việc

Họ

Tên

Nội bộ

Freehafer

Nancy

Nội bộ

Giussani

Laura

Nhà cung cấp

Glasson

Stuart

Khách hàng

Goldschmidt

Daniel

Khách hàng

Gratacos Solsona

Antonio

Truy vấn bên trên có thể bớt được thậm chí nhiều hơn thế nữa vì Access chỉ gọi tên của trường áp sạc ra từ tầm nã vấn đầu tiên trong tầm nã vấn hợp. Tại đây, chúng ta thấy họ đã thải trừ đầu ra khỏi các mục truy vấn vấn thứ hai với thứ ba:

SELECT "Customer" As Employment, , FROM CustomersUNIONSELECT "Supplier", , FROM SuppliersUNIONSELECT "In-house", , FROM EmployeesORDER BY , ;
Trong tróc nã vấn vừa lòng Access, chỉ có thể chấp nhận được xếp thiết bị tự một lần nhưng mà từng truy tìm vấn hoàn toàn có thể được lọc riêng biệt. Việc dựng trên truy hỏi vấn hợp của mục trước, dưới đó là ví dụ về vị trí chúng ta đã lọc từng truy vấn vấn bằng cách thêm mệnh đề WHERE.

SELECT "Customer" As Employment, Customers., Customers.FROM CustomersWHERE = "UT"UNIONSELECT "Supplier", , FROM SuppliersWHERE = "Sales Manager"UNIONSELECT "In-house", Employees., Employees.FROM EmployeesWHERE city = "Seattle"ORDER BY , ; thay đổi sang dạng coi biểu dữ liệu và bạn sẽ thấy công dụng có dạng như sau:

Công việc

Họ

Tên

Nhà cung cấp

Andersen

Elizabeth A.

Nội bộ

Freehafer

Nancy

Khách hàng

Hasselberg

Jonas

Nội bộ

Hellung-Larsen

Anne

Nhà cung cấp

Hernandez-Echevarria

Amaya

Khách hàng

Mortensen

Sven

Nhà cung cấp

Sandberg

Mikael

Nhà cung cấp

Sousa

Luis

Nội bộ

Thorpe

Steven

Nhà cung cấp

Weiler

Cornelia

Nội bộ

Zare

Robert


Nếu những truy vấn cần kết hợp đều rất khác nhau, bạn cũng có thể gặp đề xuất một trường hợp là trường đầu ra phải phối kết hợp dữ liệu của những loại tài liệu khác nhau. Nếu vậy, truy vấn vấn hợp đa số thường đang trả về tác dụng dưới dạng loại dữ liệu văn bản do các loại dữ liệu có thể lưu giữ cả văn bạn dạng và số.

Để khám phá cách tróc nã vấn này hoạt động, chúng ta sẽ áp dụng truy vấn vừa lòng Giao dịch thành phầm trong cơ sở dữ liệu mẫu Northwind. Mở cơ sở tài liệu mẫu đó, rồi mở truy tìm vấn Giao dịch sản phẩm ở dạng coi biểu dữ liệu. Mười bạn dạng ghi sau cùng phải tương tự như như áp sạc ra này:

ID Sản phẩm

Ngày để hàng

Tên công ty

Giao dịch

Số lượng

77

Nhà cung ứng B

Mua

60

80

Nhà cung ứng D

Mua

75

81

Nhà hỗ trợ A

Mua

125

81

Nhà cung ứng A

Mua

200

7

Công ty D

Bán

10

51

Công ty D

Bán

10

80

Công ty D

Bán

10

34

Công ty AA

Bán

100

80

Công ty AA

Bán

25

Hãy trả định rằng bạn có nhu cầu trường con số chia bóc vào hai - cài và Bán. Cũng hãy mang định rằng bạn muốn có giá trị số không cố định và thắt chặt cho trường không tồn tại giá trị. Đây là giao diện của SQL đối với truy vấn vừa lòng này:

SELECT , , , , 0 As Buy, As SellFROM UNIONSELECT , , , , As Buy, 0 As SellFROM ORDER BY DESC;  ví như bạn thay đổi sang dạng xem biểu dữ liệu, các bạn sẽ thấy mười phiên bản ghi cuối cùng bây giờ được hiển thị giống hệt như sau:

ID Sản phẩm

Ngày đặt hàng

Tên công ty

Giao dịch

Mua

Bán

74

Nhà cung ứng B

Mua

31

0

77

Nhà hỗ trợ B

Mua

60

0

80

Nhà hỗ trợ D

Mua

75

0

81

Nhà hỗ trợ A

Mua

125

0

81

Nhà hỗ trợ A

Mua

200

0

7

Công ty D

Bán

0

10

51

Công ty D

Bán

0

10

80

Công ty D

Bán

0

10

34

Công ty AA

Bán

0

100

80

Công ty AA

Bán

0

25

Tiếp tục lấy ví dụ như này, điều gì sẽ xảy ra nếu bạn muốn các trường tất cả số ko là trống? chúng ta cũng có thể sửa đổi SQL để không hiển thị gì thay bởi số không bằng phương pháp thêm từ khóa Null y hệt như sau:

SELECT , , , , Null As Buy, As SellFROM UNIONSELECT , , , , As Buy, Null As SellFROM ORDER BY DESC; mặc dù nhiên, khi chúng ta cũng có thể quan gần kề việc thay đổi sang dạng xem biểu dữ liệu, thời điểm này bạn đã sở hữu một công dụng không ước ao muốn. Trong cột Mua, mỗi trường đa số bị xóa:

ID Sản phẩm

Ngày đặt hàng

Tên công ty

Giao dịch

Mua

Bán

74

Nhà cung ứng B

Mua

77

Nhà cung ứng B

Mua

80

Nhà cung ứng D

Mua

81

Nhà cung cấp A

Mua

81

Nhà cung cấp A

Mua

7

Công ty D

Bán

10

51

Công ty D

Bán

10

80

Công ty D

Bán

10

34

Công ty AA

Bán

100

80

Công ty AA

Bán

25

Lý vì chưng mà điều này xảy ra là vì Access xác định loại dữ liệu của những trường từ truy tìm vấn đầu tiên. Trong lấy ví dụ như này, Null không phải là một trong số.

Vì vậy, điều gì xảy ra nếu như bạn tìm cách và chèn một chuỗi trống mang lại giá trị của các trường trống? SQL đối với nỗ lực này hoàn toàn có thể có dạng như sau:

SELECT , , , , "" As Buy, As SellFROM UNIONSELECT , , , , As Buy, "" As SellFROM ORDER BY DESC; lúc bạn biến hóa sang dạng coi biểu dữ liệu, các bạn sẽ thấy rằng Access tầm nã xuất các giá trị mua nhưng đã biến đổi các quý giá này thành văn bản. Chúng ta có thể biết đó là giá trị văn bạn dạng vì được căn trái làm việc dạng xem biểu dữ liệu. Chuỗi trống trong truy vấn trước tiên không đề xuất là số là vì bạn thấy các công dụng này. Bạn cũng trở nên nhận thấy rằng những giá trị buôn bán cũng được chuyển đổi thành văn bản vì các bạn dạng ghi mua bao gồm chứa chuỗi trống.

ID Sản phẩm

Ngày để hàng

Tên công ty

Giao dịch

Mua

Bán

74

Nhà cung cấp B

Mua

31

77

Nhà cung ứng B

Mua

60

80

Nhà cung ứng D

Mua

75

81

Nhà hỗ trợ A

Mua

125

81

Nhà hỗ trợ A

Mua

200

7

Công ty D

Bán

10

51

Công ty D

Bán

10

80

Công ty D

Bán

10

34

Công ty AA

Bán

100

80

Công ty AA

Bán

25

Vật thì bạn giải quyết vấn đề này như thế nào?

Giải pháp là buộc truy tìm vấn có giá trị trường là một trong những số. Điều đó hoàn toàn có thể được triển khai bằng biểu thức:

IIf(False, 0, Null) Điều kiện nhằm kiểm tra, False, đã không lúc nào là True, cho nên vì vậy biểu thức sẽ luôn trả về Null dẫu vậy Access vẫn đánh túi tiền hai tùy chọn đầu ra và ra quyết định đầu ra là số hoặc Null.

Đây là cách bạn cũng có thể sử dụng biểu thức này vào ví dụ hoạt động vui chơi của mình:

SELECT , , , , IIf(False, 0, Null) As Buy, As SellFROM UNIONSELECT , , , , As Buy, Null As SellFROM ORDER BY DESC; xem xét rằng không quan trọng sửa đổi truy vấn sản phẩm hai.

Nếu bạn đổi khác sang dạng xem biểu dữ liệu, thời điểm này các bạn sẽ thấy công dụng mà họ mong muốn:

ID Sản phẩm

Ngày đặt hàng

Tên công ty

Giao dịch

Mua

Bán

74

Nhà cung cấp B

Mua

31

77

Nhà cung cấp B

Mua

60

80

Nhà hỗ trợ D

Mua

75

81

Nhà hỗ trợ A

Mua

125

81

Nhà hỗ trợ A

Mua

200

7

Công ty D

Bán

10

51

Công ty D

Bán

10

80

Công ty D

Bán

10

34

Công ty AA

Bán

100

80

Công ty AA

Bán

25

Phương pháp thay thế sửa chữa để có được cùng một hiệu quả là thêm các truy vấn trong tróc nã vấn phù hợp với một truy vấn vấn khác:

SELECT 0 As , Date() As , "" As , "" As , 0 As Buy, 0 As SellFROM WHERE False Đối cùng với từng trường, Access trả về những giá trị cố định của loại dữ liệu bạn xác định. Tất nhiên, bạn không muốn đầu ra của truy vấn vấn này làm khó đến kết quả, vì thế bí kíp để tránh điều này là cung ứng mệnh đề WHERE thành False:

WHERE False Đây là 1 trong bí kíp nhỏ dại vì hiệu quả luôn là false và tiếp nối truy vấn ko trả về ngẫu nhiên giá trị nào. Phối kết hợp câu lệnh này với SQL hiện có và bọn họ có được câu lệnh được xong xuôi như sau:

SELECT 0 As , Date() As , "" As , "" As , 0 As Buy, 0 As SellFROM WHERE FalseUNIONSELECT , , , , Null As Buy, As SellFROM UNIONSELECT , , , , As Buy, Null As SellFROM ORDER BY DESC;
Lưu ý: Truy vấn đã phối kết hợp ở trên đây trong lấy ví dụ này áp dụng cơ sở dữ liệu Northwind trả về 100 phiên bản ghi, trong những khi hai truy tìm vấn biệt lập trả về 58 với 43 bản ghi có tổng cộng là 101 bản ghi. Lý do về sự không thống tuyệt nhất này là do hai bản ghi chưa phải là duy nhất. Hãy coi mục, thao tác với các phiên bản ghi riêng lẻ trong tróc nã vấn hợp bởi UNION ALL, để tìm hiểu cách để giải quyết kịch bạn dạng này bằng phương pháp sử dụng UNION ALL.


Một ngôi trường hợp quan trọng về truy tìm vấn thích hợp là phối kết hợp một bộ các phiên bản ghi có một bạn dạng ghi đựng tổng của một hoặc nhiều trường.

Đây là một trong ví dụ khác mà chúng ta cũng có thể tạo vào cơ sở dữ liệu mẫu Northwind để minh họa cách nhận tổng trong tróc nã vấn hợp.

Tạo một truy tìm vấn dễ dàng mới để xem phần cài bia (ID Sản phẩm=34 trong cơ sở tài liệu Northwind) bằng cú pháp SQL sau đây:

SELECT ., .QuantityFROM WHERE (((.)=34))ORDER BY .; thay đổi sang dạng xem biểu dữ liệu và bạn sẽ thấy bốn thành phầm mua:

Ngày nhận

Số lượng

100

60

50

300

Để giành được tổng, sản xuất một tầm nã vấn tổng hợp đơn giản dễ dàng bằng SQL sau đây:

SELECT Max(), Sum() AS SumOfQuantityFROM WHERE (((.)=34)) đổi khác sang dạng coi biểu tài liệu và bạn sẽ chỉ thấy một bản ghi:

Ngày nhận_tối_đa

Tổng_số_lượng

510

Kết vừa lòng hai truy vấn này vào một truy vấn đúng theo để chắp thêm bản ghi có con số tổng vào các bạn dạng ghi mua:

SELECT ., .QuantityFROM WHERE (((.)=34))UNIONSELECT Max(), Sum() AS SumOfQuantityFROM WHERE (((.)=34))ORDER BY .; thay đổi sang dạng coi biểu tài liệu và các bạn sẽ thấy bốn thành phầm mua có tổng của từng sản phẩm kèm theo là một bản ghi tính tổng cộng lượng:

Ngày nhận

Số lượng

60

100

50

300

510

Bài viết đó đề cập đến những thông tin cơ bạn dạng về biện pháp thêm tổng vào một trong những truy vấn hợp. Bạn có thể cũng muốn đưa vào những giá trị cố định và thắt chặt trong cả nhị truy vấn ví dụ như “Chi tiết” và “Tổng” nhằm phân tách trực quan bản ghi tổng từ bỏ các phiên bản ghi khác. Bạn có thể xem lại các giá trị thắt chặt và cố định đang sử dụng trong mục phối kết hợp ba hoặc các bảng hoặc truy vấn trong tróc nã vấn hợp.


Các truy vấn vấn hợp trong Access theo khoác định chỉ bao gồm các bản ghi riêng rẽ biệt. Tuy thế điều gì sẽ xảy ra nếu bạn có nhu cầu bao tất cả tất cả bạn dạng ghi? Một ví dụ khác rất có thể hữu ích ở đây.

Trong mục trước đó, chúng tôi đã chỉ cho bạn cách tạo thành tổng trong truy nã vấn hợp. Sửa đổi truy vấn vừa lòng SQL đó để sở hữu ID Sản phẩm= 48:

SELECT ., .QuantityFROM WHERE (((.)=48))UNIONSELECT Max(), Sum() AS SumOfQuantityFROM WHERE (((.)=48))ORDER BY .; chuyển đổi sang dạng coi biểu tài liệu và các bạn sẽ thấy tác dụng hơi sai không giống một chút:

Ngày nhận

Số lượng

100

200

Dĩ nhiên, một bản ghi sẽ không còn trả về hai lần số lượng tổng.

Lý do bạn thấy tác dụng này là vì trong một ngày cùng một lượng sôcôla sẽ được phân phối hai lần - như được ghi lại trong bảng chi tiết đơn đặt hàng. Đây là kết quả truy vấn chọn đơn giản dễ dàng hiển thị cả hai bản ghi trong cơ sở dữ liệu mẫu Northwind:

ID Đơn để hàng

Product

Quantity

100

Northwind Traders Chocolate

100

92

Northwind Traders Chocolate

100

Trong truy hỏi vấn hợp được chú giải trước, bạn cũng có thể thấy rằng trường ID Đơn mặt hàng không được đưa vào với hai trường không chế tạo ra thành hai phiên bản ghi riêng rẽ biệt.

Nếu bạn có nhu cầu đưa tất cả bản ghi vào, hãy sử dụng UNION ALL thay vì UNION vào SQL của mình. Điều này công ty yếu rất có thể sẽ gây tác động về việc thu xếp kết quả, vày vậy bạn có thể cũng hy vọng đưa vào mệnh đề ORDER BY để khẳng định thứ tự chuẩn bị xếp. Đây là bí quyết dựng SQL vẫn sửa thay đổi từ lấy ví dụ như trước đó:

SELECT ., Null As , .QuantityFROM WHERE (((.)=48))UNION ALLSELECT Max(), "Total" As , Sum() AS SumOfQuantityFROM WHERE (((.)=48))ORDER BY ; thay đổi sang dạng coi biểu dữ liệu và bạn sẽ thấy tất cả các cụ thể ngoài tổng bên dưới dạng bản ghi cuối cùng:

Ngày nhận

Tổng

Số lượng

100

100

Tổng cộng

200


Mức sử dụng thịnh hành về truy tìm vấn hợp vào vai trò là nguồn bản ghi cho tinh chỉnh và điều khiển hộp tổng hợp trên biểu mẫu. Chúng ta có thể sử dụng hộp tổ hợp đó để lựa chọn 1 giá trị đề xuất lọc các bạn dạng ghi của biểu mẫu. Ví dụ: lọc phiên bản ghi nhân viên theo thành phố.

Để xem phương pháp hoạt động, đây là một ví dụ không giống mà bạn có thể tạo vào cơ sở tài liệu mẫu Northwind để minh họa kịch phiên bản này.

Tạo truy vấn chọn đơn giản bằng cú pháp SQL này:

SELECT Employees.City, Employees.City AS FilterFROM Employees; biến hóa sang dạng coi biểu dữ liệu và bạn sẽ thấy hiệu quả như sau:

Thành phố

Bộ lọc

Seattle

Seattle

Bellevue

Bellevue

Redmond

Redmond

Kirkland

Kirkland

Seattle

Seattle

Redmond

Redmond

Seattle

Seattle

Redmond

Redmond

Seattle

Seattle

Đang xem các kết quả mà chúng ta có thể không thấy các giá trị. Bung rộng truy vấn cục bộ và biến đổi thành truy hỏi vấn hợp bằng cách sử dụng SQL sau đây:

SELECT Employees.City, Employees.City AS FilterFROM EmployeesUNIONSELECT "", "*" AS FilterFROM EmployeesORDER BY City; thay đổi sang dạng xem biểu tài liệu và các bạn sẽ thấy hiệu quả như sau:

Thành phố

Bộ lọc

*

Bellevue

Bellevue

Kirkland

Kirkland

Redmond

Redmond

Seattle

Seattle

Access đang thực hiện phối hợp chín bạn dạng ghi, được hiển thị trước đó, có các giá trị cố định là và "*".

Vì mệnh đề phối kết hợp này không chứa UNION ALL, Access sẽ chỉ trả về các phiên bản ghi riêng biệt có tức thị từng thành phố được trả về duy nhất lần với các giá trị thắt chặt và cố định giống nhau.

Xem thêm: Địa Chỉ Ip Là Gì? Cách Xem Địa Chỉ Ip Của Điện Thoại Android, Iphone

Lúc này, các bạn có một tầm nã vấn hòa hợp đã xong xuôi hiển thị mỗi tên thành phố chỉ một lần, cùng rất một tùy chọn sẽ chọn toàn bộ các tp một bí quyết hiệu quả, bạn cũng có thể sử dụng truy vấn vấn này có tác dụng nguồn bạn dạng ghi đến hộp tổng hợp trên biểu mẫu. Sử dụng ví dụ cụ thể này làm cho mô hình, chúng ta cũng có thể tạo tinh chỉnh hộp tổng hợp trên biểu mẫu, đặt truy vấn này làm nguồn bạn dạng ghi, đặt thuộc tính Column Width của Cột cỗ lọc thành 0 (số không) nhằm ẩn một giải pháp trực quan, rồi để thuộc tính Bound Column thành 1 để chỉ báo các chỉ mục của cột sản phẩm hai. Trong thuộc tính Filter của bạn dạng thân biểu mẫu, bạn cũng có thể thêm vào mã chẳng hạn như mã tiếp sau đây để kích hoạt bộ lọc biểu mẫu bằng giá trị của không ít gì đang được lựa chọn trong điều khiển hộp tổ hợp:

Me.Filter = " like "" & Me!.Value và """Me.FilterOn = True Sau đó, người tiêu dùng của biểu mẫu hoàn toàn có thể lọc các bạn dạng ghi biểu mẫu mã thành tên thành phố rõ ràng hoặc lựa chọn nhằm liệt kê vớ cả bạn dạng ghi cho tất cả thành phố.