Truy vấn con là gì?
Một truy vấn con là một truy vấn chọn được chứa trong một truy vấn khác. Truy vấn con thường được sử dụng để xác định kết quả của truy vấn chọn bên ngoài.
Hãy xem xét cú pháp truy vấn phụ -
Một khiếu nại phổ biến của khách hàng tại MyFlix Video Library là số lượng phim ít. Ban quản lý muốn mua phim cho thể loại mà hiện đang có số lượng phim ít nhất.
Bạn có thể sử dụng một truy vấn như
SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);
Nó cho một kết quả
Hãy xem cách truy vấn này hoạt động
Trên đây là một hình thức của Row SubQuery . Trong các truy vấn phụ như vậy, truy vấn bên trong chỉ có thể cung cấp MỘT kết quả. Các toán tử được phép khi làm việc với các truy vấn con hàng là [=,>, =, <= ,,! =,]
Hãy xem xét một ví dụ khác,
Giả sử bạn muốn Tên và số điện thoại của các thành viên của những người đã thuê phim và chưa trả lại chúng. Khi bạn nhận được Tên và Số điện thoại, bạn gọi cho họ để nhắc nhở. Bạn có thể sử dụng một truy vấn như
SELECT full_names,contact_number FROM members WHERE membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );
Hãy xem cách truy vấn này hoạt động
Trong trường hợp này, truy vấn bên trong trả về nhiều hơn một kết quả. Trên đây là loại T có thể phụ query.
Cho đến bây giờ chúng ta đã thấy hai truy vấn, bây giờ hãy xem một ví dụ về truy vấn ba !!!
Giả sử ban quản lý muốn thưởng cho thành viên trả lương cao nhất.
Chúng tôi có thể chạy một truy vấn như
Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));
Truy vấn trên cho kết quả như sau -
Truy vấn phụ Vs tham gia!
Khi so sánh với Joins, các truy vấn phụ rất dễ sử dụng và dễ đọc. Chúng không phức tạp như Joins
Do đó thường được sử dụng bởi người mới bắt đầu SQL.
Nhưng truy vấn phụ có vấn đề về hiệu suất. Việc sử dụng liên kết thay vì truy vấn phụ đôi khi có thể giúp bạn tăng hiệu suất lên tới 500 lần.
Đưa ra lựa chọn, nên sử dụng THAM GIA qua truy vấn phụ.
Các truy vấn con chỉ nên được sử dụng làm giải pháp dự phòng khi bạn không thể sử dụng thao tác THAM GIA để đạt được những điều trên
Tóm lược
- Truy vấn con là các truy vấn nhúng bên trong một truy vấn khác. Truy vấn nhúng được gọi là truy vấn bên trong và truy vấn container được gọi là truy vấn bên ngoài.
- Các truy vấn phụ rất dễ sử dụng, cung cấp tính linh hoạt cao và có thể dễ dàng chia thành các thành phần logic duy nhất tạo nên truy vấn rất hữu ích khi Kiểm tra và gỡ lỗi các truy vấn.
- MySQL hỗ trợ ba loại truy vấn con, truy vấn vô hướng, hàng và bảng.
- Các truy vấn phụ vô hướng chỉ trả về một hàng đơn và cột đơn.
- Các truy vấn phụ hàng chỉ trả về một hàng duy nhất nhưng có thể có nhiều hơn một cột.
- Các truy vấn con bảng có thể trả về nhiều hàng cũng như các cột.
- Các truy vấn con cũng có thể được sử dụng trong các truy vấn INSERT, UPDATE và DELETE.
- Đối với các vấn đề về hiệu năng, khi cần lấy dữ liệu từ nhiều bảng, chúng tôi khuyên bạn nên sử dụng THAM GIA thay vì truy vấn con. Các truy vấn phụ chỉ nên được sử dụng với lý do chính đáng.
إرسال تعليق