Sobes.tech
Junior

Ce sunt subinterogările în SQL?

sobes.tech AI

Răspuns de la AI

O subinterogare (sau interogare imbricata) în SQL este o interogare SELECT inserată în interiorul unei alte instrucțiuni SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Subinterogarea se execută prima, iar rezultatul său este utilizat de interogarea externă.

  • Utilizare:

    • În clauza WHERE pentru filtrarea datelor.
    • În clauza FROM ca tabel virtual (tabel derivat).
    • În clauza SELECT pentru afișarea datelor agregate sau legate (subinterogare scalară).
    • Cu operatorii IN, EXISTS, ANY, ALL.
  • Avantaje:

    • Permite efectuarea de interogări complexe de date.
    • Îmbunătățește lizibilitatea interogărilor comparativ cu îmbinările complexe.
    • Poate fi utilizată ca sursă de date.
  • Tipuri:

    • Scalar: Returnează o singură valoare (un rând și o coloană).
    • Multi-rând: Returnează o coloană și mai multe rânduri. Se folosește cu IN, ANY, ALL.
    • Multi-coloană: Returnează mai multe coloane. Se folosește rar.
    • ** Corelată**: Depinde de interogarea externă și se execută pentru fiecare rând al interogării externe.

Exemplu de utilizare în WHERE:

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

Exemplu de utilizare în 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;