Junior
¿Qué son las subconsultas en SQL?
sobes.tech AI
Respuesta de la IA
Una subconsulta (o consulta anidada) en SQL es una consulta SELECT insertada dentro de otra sentencia SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). La subconsulta se ejecuta primero y su resultado se utiliza en la consulta externa.
-
Uso:
- En la cláusula
WHEREpara filtrar datos. - En la cláusula
FROMcomo una tabla virtual (tabla derivada). - En la cláusula
SELECTpara mostrar datos agregados o relacionados (subconsulta escalar). - Con los operadores
IN,EXISTS,ANY,ALL.
- En la cláusula
-
Ventajas:
- Permiten realizar consultas de datos complejas.
- Mejoran la legibilidad de las consultas en comparación con uniones complejas.
- Pueden usarse como fuente de datos.
-
Tipos:
- Escalar: Devuelve un solo valor (una fila y una columna).
- Multilínea: Devuelve una columna y varias filas. Se usa con
IN,ANY,ALL. - Multicolumna: Devuelve varias columnas. Se usa raramente.
- Correlacionada: Depende de la consulta externa y se ejecuta para cada fila de la consulta externa.
Ejemplo de uso en WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Ejemplo de uso en FROM:
SELECT
customer_name,
total_orders
FROM (
SELECT
c.customer_name,
COUNT(o.order_id) AS total_orders
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name
) AS customer_order_counts
WHERE
total_orders > 10;