Truy vấn lồng nhau, truy vấn con Subquery

Một truy vấn lồng nhau là một truy vấn nằm trong truy vấn khác. Để hiểu hãy xem ví dụ sau:

Lấy giá trung bình của sản phẩm

SELECT avg(Price) AS GiaTB FROM Products

Chạy truy vấn trên SQLite dữ liệu mẫu

GiaTB
28.866363636363637

Bạn có thể thực hành các câu lệnh SQL ví dụ trên CSDL mẫu SQLite có sẵn tại SQLite và thực hành lệnh SQL

Tiếp theo bạn muốn lấy thông tin sản phẩm có giá lớn hơn giá trung bình này, nếu không có sử dụng truy vấn lồng nhau thì có thể viết

SELECT ProductID, ProductName, Price FROM Products
WHERE Price > 28.866363636363637
ORDER BY Price

Sử dụng truy vấn lồng nhau Subquery

Coi câu truy vấn lấy giá trị trung bình ở trên có đưa vào dấu (): (SELECT avg(Price) AS GiaTB FROM Products) như là tham số để sử dụng cho truy vấn thứ 2. Vậy tiến hành thay tham số giá trị bằng truy vấn này sẽ có được truy vấn lồng nhau

SELECT ProductID, ProductName, Price FROM Products
WHERE Price > (SELECT avg(Price) AS GiaTB FROM Products)
ORDER BY Price
ProductID ProductName Price
7 Uncle Bob's Organic Dried Pears 30
10 Ikura 31
26 Gumbär Gummibärchen 31.23
32 Mascarpone Fabioli 32
53 Perth Pasties 32.8
64 Wimmers gute Semmelknödel 33.25
Đăng ký theo dõi ủng hộ kênh