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 thử

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

GiaTB
28.866363636363637

Có một file CSDL mẫu dạng SQLite, bạn có thể tải về thực hành: CSDL SQLite mẫu. Hoặc Chạy SQL Online

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
Chạy thử

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
Chạy thử
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