Basic Subquery
Create and use a subquery:Subquery in WHERE Clause
Use subqueries for filtering:Subquery in SELECT
Include subquery results in select:Common Table Expressions (CTE)
Use WITH clauses for readable complex queries:Subquery Joins
Join with subquery results:Correlated Subqueries
Subqueries that reference outer query:Subquery with Aggregations
Combine subqueries with aggregate functions:Lateral Joins (PostgreSQL)
Use LATERAL for more powerful correlated subqueries:Subquery in FROM Clause
Use subquery as a data source:Nested Subqueries
Subqueries within subqueries:Scalar Subqueries
Subqueries returning a single value:Insert from Subquery
Insert data from a select query:Update with Subquery
Update using subquery results:Delete with Subquery
Delete based on subquery:Union with Subqueries
Combine multiple subquery results:Type Safety
Subqueries maintain full type safety:Performance Tips
1
Use CTEs for Readability
CTEs make complex queries easier to understand and maintain
2
Index Subquery Columns
Ensure columns used in subquery joins and WHERE clauses are indexed
3
Limit Subquery Results
Use LIMIT in subqueries when you don’t need all rows
4
Consider Materialized CTEs
For expensive subqueries used multiple times, consider materialized views
5
Test Query Plans
Use EXPLAIN to understand how the database executes your subqueries
Common Patterns
Top N per Group
Deduplication
Running Totals
Pivot Tables
Next Steps
Joins
Combine subqueries with joins
Aggregations
Use aggregations in subqueries
Select Queries
Master the select query builder
Performance
Optimize subquery performance