Intermedio
15 min de lecturaSubconsultas
Consultas anidadas dentro de otras consultas
Las subconsultas son consultas SELECT anidadas dentro de otra consulta.
Tipos de subconsultas
#
Subconsulta escalar (devuelve un valor)
sql
1SELECT nombre, precio2FROM productos3WHERE precio > (SELECT AVG(precio) FROM productos);#
Subconsulta de fila única
sql
1SELECT * FROM usuarios2WHERE id = (SELECT usuario_id FROM pedidos WHERE total = (SELECT MAX(total) FROM pedidos));#
Subconsulta de múltiples filas
sql
1SELECT nombre, email2FROM usuarios3WHERE id IN (SELECT usuario_id FROM pedidos WHERE total > 100);#
Subconsulta correlacionada
sql
1SELECT u.nombre, (2 SELECT COUNT(*) 3 FROM posts p 4 WHERE p.usuario_id = u.id5) as total_posts6FROM usuarios u;#
EXISTS
sql
1SELECT nombre FROM usuarios u2WHERE EXISTS (3 SELECT 1 FROM pedidos p 4 WHERE p.usuario_id = u.id AND p.total > 5005);Sintaxis
Sintaxis
sql
1SELECT columnas2FROM tabla3WHERE columna OPERADOR (SELECT columna FROM tabla2 WHERE condición);Ejemplos
Productos sobre promedio
Productos más caros que el promedio
Ejemplo
sql
1SELECT nombre, precio2FROM productos3WHERE precio > (SELECT AVG(precio) FROM productos)4ORDER BY precio DESC;Resultado:
| nombre | precio | |------------|--------| | Laptop Pro | 2999 | | Monitor 4K | 899 | | Tablet | 499 |