Sobes.tech
Junior

O que são subconsultas em SQL?

sobes.tech IA

Resposta da IA

Uma subconsulta (ou consulta aninhada) em SQL é uma consulta SELECT inserida dentro de outra instrução SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). A subconsulta é executada primeiro, e o seu resultado é utilizado pela consulta externa.

  • Utilização:

    • Na cláusula WHERE para filtrar dados.
    • Na cláusula FROM como uma tabela virtual (tabela derivada).
    • Na cláusula SELECT para mostrar dados agregados ou relacionados (subconsulta escalar).
    • Com os operadores IN, EXISTS, ANY, ALL.
  • Vantagens:

    • Permitem realizar consultas de dados complexas.
    • Melhoram a legibilidade das consultas em comparação com junções complexas.
    • Podem ser usadas como fonte de dados.
  • Tipos:

    • Escalar: Retorna um único valor (uma linha e uma coluna).
    • Multilinha: Retorna uma coluna e várias linhas. Usado com IN, ANY, ALL.
    • Multicoluna: Retorna várias colunas. Usado raramente.
    • Correlacionada: Depende da consulta externa e é executada para cada linha da consulta externa.

Exemplo de uso em WHERE:

SELECT
    order_id,
    customer_id,
    order_date
FROM
    orders
WHERE
    customer_id IN (
        SELECT
            customer_id
        FROM
            customers
        WHERE
            city = 'New York'
    );

Exemplo de uso em 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;