SQL-Dojo · Unterabfragen

Derived Table: Subquery in FROM

Übungsaufgabe aus der Lernplattform: Aufgabenstellung hier lesen, Lösung dort schreiben und automatisch prüfen lassen.

Schwer , Schwierigkeit 4 von 5 ca. 14 Minuten 25 XP Track: Unterabfragen

Bisher standen Subqueries in WHERE oder SELECT. Subqueries können aber auch wie eine Tabelle verwendet werden: im FROM. Das Ergebnis der inneren Query wird zu einer virtuellen Tabelle, auf die du ganz normal zugreifst.

Das ist die letzte Stelle in einer Abfrage, an der eine Subquery stehen kann, und zugleich die mächtigste. Denn FROM bestimmt, worüber die Abfrage überhaupt redet. Setzt du dort eine Subquery hinein, arbeitest du nicht mehr auf den rohen Tabellen der Datenbank, sondern auf einem selbst berechneten Zwischenergebnis.

Die Analogie dazu kennst du aus der Tabellenkalkulation: Wenn eine Auswertung zu verschachtelt wird, legst du ein Hilfsblatt an, rechnest dort die Zwischenwerte aus und baust die eigentliche Auswertung darauf auf. Eine Derived Table ist dieses Hilfsblatt — nur dass sie bei jedem Ausführen frisch entsteht und nirgends gespeichert wird. Damit lassen sich Aufgaben in zwei saubere Schritte zerlegen, die in einer einzigen Abfrage nicht formulierbar wären.

Das steckt in der vollständigen Aufgabe

  1. Wann du das brauchst
  2. Warum Alias Pflicht ist
  3. Zwei Subqueries: eine im FROM, eine als Vergleichswert
  4. Die Tabelle
  5. Deine Aufgabe

Die vollständige Aufgabenstellung mit Beispieldaten, Hinweisen und erklärter Musterlösung steht in der Lernplattform.

Lernplattform

Schreib die Lösung, wir prüfen sie.

In der Lernplattform arbeitest du direkt im Browser. Deine Lösung wird automatisch geprüft, mit Hinweisen bei Fehlern und einer erklärten Musterlösung.

Diese Aufgabe lösen

Weitere Aufgaben aus Unterabfragen

Alle Aufgaben
  1. Skalare Subquery: Vergleich mit einem Aggregat Das ist die erste Challenge im Subquery-Track. Bevor du die Aufgabe löst, solltest du verstehen, was eine Subquery überhaupt ist und wofür man sie braucht. Danach geht es um den einfachsten Fall: d... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
  2. WHERE IN mit Subquery Aus dem Grundlagen-Track kennst du IN mit einer festen Liste: Die Liste kann aber auch aus einer anderen Tabelle kommen. Dafür ersetzt du die Liste durch eine Subquery, die eine Spalte mit Werten l... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
  3. WHERE NOT IN: wer fehlt? Das Gegenstück zu IN: alle Werte, die nicht in der Subquery-Liste vorkommen. Typische Aufgabe: "Finde alle Kunden ohne Projekt". Die Liste "Kunden mit Projekt" liefert eine Subquery, und NOT IN dre... Mittel , Schwierigkeit 3 von 5 ca. 8 Minuten
  4. WHERE EXISTS: gibt es mindestens eine passende Zeile? EXISTS (subquery) ist ein Existenz-Test: Es liefert TRUE, wenn die Subquery mindestens eine Zeile findet, sonst FALSE. Im Gegensatz zu IN interessiert sich EXISTS nicht für konkrete Werte, sondern ... Mittel , Schwierigkeit 3 von 5 ca. 10 Minuten

Zurück zur Übersicht Unterabfragen