Sobes.tech
Junior

Wat zijn subqueries in SQL?

sobes.tech AI

Antwoord van AI

Een subquery (of geneste query) in SQL is een SELECT-query die binnen een andere SQL-instructie (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) is ingebed. De subquery wordt eerst uitgevoerd en het resultaat wordt gebruikt door de externe query.

  • Gebruik:

    • In de WHERE-clausule om gegevens te filteren.
    • In de FROM-clausule als een virtuele tabel (afgeleide tabel).
    • In de SELECT-clausule om geaggregeerde of gerelateerde gegevens weer te geven (scalare subquery).
    • Met de operators IN, EXISTS, ANY, ALL.
  • Voordelen:

    • Maakt het mogelijk om complexe gegevensopvragingen uit te voeren.
    • Verbeteren de leesbaarheid van queries in vergelijking met complexe joins.
    • Kan worden gebruikt als gegevensbron.
  • Types:

    • Scalair: Geeft één waarde terug (één rij en één kolom).
    • Meerdere rijen: Geeft één kolom en meerdere rijen terug. Gebruikt met IN, ANY, ALL.
    • Meerdere kolommen: Geeft meerdere kolommen terug. Wordt zelden gebruikt.
    • Gecorreleerd: Afhankelijk van de externe query en wordt uitgevoerd voor elke rij van de externe query.

Voorbeeld van gebruik in WHERE:

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

Voorbeeld van gebruik in 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;