Answer

A subquery (inner query or nested query) is a SELECT statement embedded within another SQL query. Types: scalar subquery — returns a single value: SELECT * FROM products WHERE price > (SELECT AVG(price) FROM products); row subquery — returns a single row; table subquery — returns multiple rows/columns, used with IN, EXISTS, or in the FROM clause (derived table). Subqueries run once (scalar/correlated exceptions aside). Correlated subqueries reference the outer query and run once per outer row — often slow; a JOIN may be more efficient.