Las subconsultas son consultas anidadas dentro de otra consulta. Se utilizan para realizar operaciones más complejas y permiten recuperar datos que dependen de otros datos.
A continuación, se presentan ejemplos de cómo usar subconsultas en diferentes partes de una consulta SQL.
Para ilustrar mejor, trabajaremos con las siguientes tablas:
usuarios| id | nombre |
|-----|----------|
| 1 | Juan |
| 2 | María |
| 3 | Pedro |
| 4 | Ana | pedidos| id | usuario_id | producto |
|-----|------------|---------------|
| 1 | 1 | Producto A |
| 2 | 1 | Producto B |
| 3 | 2 | Producto C |
| 4 | 3 | Producto D | Subconsultas en el SELECTLas subconsultas pueden usarse en la cláusula SELECT para calcular valores que dependen de otros datos.
SELECT nombre,
(SELECT COUNT(*)
FROM pedidos
WHERE usuario_id = usuarios.id) AS total_pedidos
FROM usuarios; | nombre | total_pedidos |
|--------|---------------|
| Juan | 2 |
| María | 1 |
| Pedro | 1 |
| Ana | 0 | Subconsultas en el FROMLas subconsultas también se pueden usar en la cláusula FROM para crear tablas temporales que pueden ser consultadas.
SELECT usuario_id, COUNT(*) AS total_pedidos
FROM (SELECT * FROM pedidos WHERE producto = 'Producto A') AS pedidos_filtrados
GROUP BY usuario_id; | usuario_id | total_pedidos |
|------------|---------------|
| 1 | 1 | Subconsultas en el WHERELas subconsultas son útiles en la cláusula WHERE para filtrar resultados basados en condiciones de otras tablas.
SELECT * FROM usuarios
WHERE id IN (SELECT usuario_id FROM pedidos WHERE producto = 'Producto A'); | id | nombre |
|-----|--------|
| 1 | Juan | Las subconsultas son herramientas poderosas que permiten hacer consultas más complejas y obtener datos interrelacionados de manera efectiva.