Sobes.tech
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 WHERE para filtrar datos.
    • En la cláusula FROM como una tabla virtual (tabla derivada).
    • En la cláusula SELECT para mostrar datos agregados o relacionados (subconsulta escalar).
    • Con los operadores IN, EXISTS, ANY, ALL.
  • 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;