Subqueries and Correlated Subqueries -
AD 3391 Notes
1. Introduction
SQL allows writing queries inside another query; these are called subqueries. They are used
to perform intermediate steps or comparisons.
2. Subqueries (Nested Queries)
A subquery is a query written inside another SQL query. It is executed only once, and the
result is passed to the outer query. Subqueries can be used with SELECT, FROM, or WHERE
clauses.
Types of Subqueries:
- Single-row subquery – returns one row
- Multi-row subquery – returns multiple rows
- Scalar subquery – returns a single value
Example:
SELECT name
FROM students
WHERE sid IN (
SELECT sid
FROM enrolls
WHERE grade = 'A'
);
3. Correlated Subqueries
A correlated subquery uses values from the outer query. It is executed once for every row of
the outer query and cannot be run independently.
Example:
SELECT name
FROM students s
WHERE EXISTS (
SELECT *
FROM enrolls e
WHERE e.sid = s.sid AND e.grade = 'A'
);
4. Differences Between Subquery and Correlated Subquery
Subquery Correlated Subquery
Runs once Runs for each row in outer query
No reference to outer query References outer query
Faster in most cases Slower but useful in comparisons
Can run independently Cannot run independently
5. Uses of Subqueries
- Filtering rows
- Comparing aggregates
- Performing joins in a simpler way
- Replacing complex joins
6. Conclusion
Subqueries and correlated subqueries are powerful SQL tools. They make queries modular,
readable, and flexible for complex operations.