Truy vấn phụ SQL

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Truy vấn phụ là một câu lệnh Select lồng trong một lựa CHỌN, CHỌN … SANG, CHÈN... Tuyên bố INTO, XÓA hoặc cập NHẬT hoặc bên trong một truy vấn phụ.

Cú pháp

Bạn có thể dùng các biểu mẫu ba cú để tạo một truy vấn phụ:

so sánh [BẤT | TẤT CẢ | Một SỐ] (sqlstatement)

biểu thức [KHÔNG] TRONG (sqlstatement)

[KHÔNG] EXISTS (sqlstatement)

Truy vấn phụ có những phần sau đây:

Phần

Mô tả

so sánh

Một biểu thức và một toán tử so sánh so sánh biểu thức bằng kết quả của truy vấn phụ.

biểu thức

Một biểu thức mà bộ kết quả của truy vấn phụ vào tìm kiếm.

sqlstatement

Câu lệnh Select, theo quy tắc và cùng định dạng dưới dạng bất kỳ câu lệnh CHỌN khác. Nó phải nằm trong dấu ngoặc đơn.


Chú thích

Bạn có thể sử dụng truy vấn phụ thay vì một biểu thức trong danh sách trường trong một câu lệnh Select hoặc trong một vị TRÍ hoặc mệnh đề HAVING. Trong truy vấn phụ, bạn sử dụng một câu lệnh Select cung cấp một tập hợp một hoặc nhiều giá trị cụ thể để đánh giá trong vị TRÍ hoặc KHÔNG có biểu thức mệnh đề.

Sử dụng vị từ bất KỲ hoặc một SỐ, mà là some đồng nghĩa, để truy xuất bản ghi trong truy vấn chính thỏa mãn so sánh với bất kỳ bản ghi nào truy xuất trong truy vấn phụ. Ví dụ sau trả về tất cả sản phẩm có giá đơn vị lớn hơn của bất kỳ sản phẩm bán ở mức chiết khấu của 25 phần trăm hoặc thêm:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Sử dụng vị từ tất CẢ để truy xuất chỉ những bản ghi trong truy vấn chính thỏa mãn so sánh với tất cả các bản ghi được truy xuất trong truy vấn phụ. Nếu bạn thay đổi bất KỲ cho tất CẢ trong ví dụ trước, truy vấn sẽ trả về chỉ các sản phẩm có giá đơn vị lớn hơn của tất cả sản phẩm bán ở mức chiết khấu của 25 phần trăm hoặc thêm. Điều này sẽ hạn chế hơn.

Sử dụng vị từ IN để truy xuất chỉ là những bản ghi trong truy vấn chính mà một số bản ghi trong truy vấn phụ chứa một giá trị bằng nhau. Ví dụ sau trả về tất cả sản phẩm với một phần chiết khấu của 25 phần trăm hoặc thêm:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Ngược lại, bạn có thể dùng NOT IN để truy xuất chỉ là những bản ghi trong truy vấn chính mà không có bản ghi trong truy vấn phụ chứa một giá trị bằng nhau.

Sử dụng vị từ EXISTS (với tùy chọn KHÔNG dành riêng word) trong đúng/sai so sánh để xác định xem truy vấn phụ trả về bất kỳ bản ghi.

Bạn cũng có thể sử dụng biệt danh tên bảng trong một truy vấn phụ để tham chiếu đến các bảng được liệt kê trong mệnh đề FROM bên ngoài mà truy vấn phụ. Ví dụ sau trả về tên của nhân viên tiền lương có được bằng hoặc lớn hơn lương trung bình của tất cả nhân viên có cùng chức danh. Bảng nhân viên được cung cấp bí danh "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Trong ví dụ trước, AS từ dành riêng là tùy chọn.

Một số truy vấn phụ được phép trong truy vấn chéo bảng — đặc biệt, dưới dạng predicates (những người trong mệnh đề WHERE). Truy vấn phụ như kết quả (những người trong danh sách CHỌN) không được phép trong truy vấn chéo bảng.



Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×