Sobes.tech
Junior

Was sind Unterabfragen in SQL?

sobes.tech KI

Antwort von AI

Eine Unterabfrage (oder verschachtelte Abfrage) in SQL ist eine SELECT-Abfrage, die innerhalb einer anderen SQL-Anweisung (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) eingebettet ist. Die Unterabfrage wird zuerst ausgeführt, und ihr Ergebnis wird von der äußeren Abfrage verwendet.

  • Verwendung:

    • In der WHERE-Klausel zur Filterung von Daten.
    • In der FROM-Klausel als virtuelle Tabelle (abgeleitete Tabelle).
    • In der SELECT-Klausel zur Anzeige aggregierter oder verknüpfter Daten (Skalar-Unterabfrage).
    • Mit den Operatoren IN, EXISTS, ANY, ALL.
  • Vorteile:

    • Ermöglichen komplexe Datenauswahlen.
    • Verbessern die Lesbarkeit von Abfragen im Vergleich zu komplexen Joins.
    • Können als Datenquelle verwendet werden.
  • Typen:

    • Skalar: Gibt einen einzelnen Wert (eine Zeile und eine Spalte) zurück.
    • Mehrzeilig: Gibt eine Spalte und mehrere Zeilen zurück. Wird mit IN, ANY, ALL verwendet.
    • Mehrspaltig: Gibt mehrere Spalten zurück. Wird selten verwendet.
    • Korrelation: Hängt von der äußeren Abfrage ab und wird für jede Zeile der äußeren Abfrage ausgeführt.

Beispiel für die Verwendung in WHERE:

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

Beispiel für die Verwendung 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;