Cách dùng SubQuery trong SQL

Subquery (hay còn gọi là truy vấn con) là một truy vấn được lồng bên trong một truy vấn khác. Subquery cho phép người dùng truy vấn dữ liệu từ một hoặc nhiều bảng dựa trên kết quả của truy vấn chính. 

Truy vấn con có một số đặc điểm như sau:  

– Phải được đặt trong dấu ngoặc đơn 
– Có thể được đặt trong nhiều mệnh đề như: SELECT, FROM, WHERE,… 
– Được thực hiện trước truy vấn chính 
Trong bài viết này, hãy cùng UniTrain tìm hiểu cách sử dụng Subquery trong mệnh đề WHERE nhé!

Xét 2 bảng dữ liệu như sau:  

– Bảng 1 có tên là employee_engagement, bao gồm các cột: Employee ID (ID Nhân viên), Engagement_Score (Mức độ gắn kết). 

– Bảng 2 có tên là employee, bao gồm các cột: EmpID (ID Nhân viên), FirstName (Tên), LastName (Họ), ADEmail (Địa chỉ Email) và Title (Chức danh) 

Giả sử chúng ta muốn lấy thông tin của 1 nhân viên với mức độ gắn kết cao nhất. Đầu tiên, chúng ta sẽ lọc ra Employee ID từ bảng employee_engagement với truy vấn con:  

SELECT Employee ID, Engagement Score 

FROM employee_engagement 

ORDER BY Engagement Score DESC 

LIMIT 1 

Sub1

Như vậy, nhân viên cần tìm có ID là 1006. Sau đây, chúng ta sẽ chèn truy vấn con này vào truy vấn chính: 

SELECT EmpID, FirstName, LastName, ADEmail, Title 

FROM employee 

WHERE EmpID = ( 

SELECT Employee ID 

FROM employee_engagement 

ORDER BY Engagement Score DESC 

LIMIT 1) 

Truy vấn này sẽ trả về tất cả các thông tin của nhân viên có ID là 1006: 

Sub2

Giả sử chúng ta muốn lấy thông tin về top 5 nhân viên với mức độ gắn kết cao nhất, chúng ta có truy vấn con như sau: 

SELECT Employee ID 

FROM employee_engagement 

ORDER BY Engagement Score DESC 

LIMIT 5 

Sub3

Để lấy thông tin của 5 nhân viên trên, chúng ta sẽ dùng IN trong mệnh đề WHERE, thay vì dấu bằng: 

SELECT EmpID, FirstName, LastName, ADEmail, Title 

FROM employee.csv 

WHERE EmpID IN ( 

SELECT Employee ID 

FROM employee_engagement 

ORDER BY Engagement Score DESC 

LIMIT 5) 

Sub4

Xem thêm: 

Khóa học Ứng dụng SQL trong Xử lý dữ liệu

Khóa học Excel for HR Professionals

Phân tích dữ liệu cùng SQL: Các câu lệnh truy vấn đơn giản

Kỹ năng và xu hướng nghề nghiệp năm 2024

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
Truy vấn lồng (Subquery) trong SQL – Bí kíp giúp xử lý và truy xuất dữ liệu với mức độ phức tạp cao

Truy vấn lồng (Subquery) là một trong những công cụ hiệu quả trong SQL, giúp xử lý và truy xuất dữ liệu với mức độ phức tạp cao hơn so với

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Doanh nhân tập sự – CLB Kỹ năng Doanh nhân (ACTION CLUB) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Ngày 21/06/2025 vừa rồi, với danh vị là Nhà tài trợ Học bổng – UniTrain hân hạnh tham dự chung kết cuộc thi Doanh nhân tập sự. Cuộc thi với quy

Xem thêm
Hàm TRIMRANGE() – Hàm xóa giá trị trống “đỉnh” hơn cả TRIM.

Như bạn đã biết hàm TRIM() trong Excel giúp loại bỏ các ký tự trống (khoảng trắng). Tương tự vậy hàm TRIMRANGE() được sử dụng để xóa các giá trị trống khỏi một phạm vi

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm