Truy vấn con phần 1
Thuộc phần Kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 38 trên 72.
Truy vấn con cho phép chúng ta kết hợp nhiều truy vấn thành một. Ví dụ, hãy xem bảng employees sau:
| id | lương |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
| 4 | 13 |
| 5 | 28 |
Ta cần truy vấn con vì không thể dùng trực tiếp WHERE salary > AVG(salary), do các hàm tổng hợp như AVG() không thể dùng trong mệnh đề WHERE. Chúng chỉ có thể dùng sau khi dữ liệu đã được nhóm.
SELECT id, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Truy vấn con giúp chúng ta tìm những nhân viên có mức lương cao hơn mức lương trung bình của công ty bằng cách tính mức trung bình trước (truy vấn bên trong), rồi dùng giá trị đó để lọc nhân viên (truy vấn bên ngoài).
Vì giá trị trung bình là: (48 + 34 + 46 + 13 + 28) / 5 = 33.8, đây là kết quả của truy vấn:
| id | lương |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
Thử thách
DễCác bảng và cột hiện có:
shop:price,quantity,category,list_date
Viết truy vấn để tìm tất cả mặt hàng (chọn tất cả các cột) có giá cao hơn giá trung bình của tất cả mặt hàng.
Dùng truy vấn con trong mệnh đề WHERE để tính giá trung bình, rồi so sánh giá của từng mặt hàng với giá trung bình này.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
2Điều kiện
Kiến thức cơ bản về điều kiệnTừ khóa ANDTừ khóa ORTừ khóa NOTKết hợp nhiều điều kiệnDấu ngoặc đơnGiá trị logic3Định dạng giá trị trả về cụ thể
Giá trị nullSắp xếp kết quả phần 1Sắp xếp kết quả phần 2Ôn tập: Công ty an ninh mạngGiới hạn số bản ghiÔn tập: Nhà máy sản xuất xe6Thử thách nhập môn
Ôn tập: bầu cử quốc hộiÔn tập: cảnh sát bắt giữ tội phạmÔn tập: vật chứa đồ uống tại quầy barÔn tập: kỹ sư tạo cột mớiTự luyện tập: Playground SQL