An SQL subquery is a
SELECT statement inside another statement. Subqueries are useful alternates to
JOIN and can, in some cases, do things that
JOIN cannot. Here is an example of SQL subquery:
SELECT f_name, l_name FROM employee WHERE id IN (SELECT id FROM salary WHERE salary < 70000);
In this example,
(SELECT id FROM salary WHERE salary < 70000) is a subquery, you can even nest subqueries within another subqueries.
However, subqueries are not as quick as joins when selecting big datasets and there can be surprising performance costs. Please note that the value that subquery returns must mach the value that the parent query expects. For example, if you use
WHERE id = 52 then value must be a single value, not a list, otherwise you will encounter an error.