Wie kann ich mit einem(!) SQL-Statement das select Ergebnis aus mehreren Tabellen als eine Tabelle vereinheitlichen und ausgeben?

... komplette Frage anzeigen

2 Antworten

Da hast du schon mal nichts Falsches gelesen. 
  • UNION = "addiert" die Ergebnisse mehrerer Einzel-Abfragen (SELECTs) aus verschiedenen (oder auch derselben) Tabellen  
  • JOIN = verknüpft vor der eigentlichen Abfrage (SELECT) mehrere Tabellen, so dass man sie "wie eine einzige Tabelle" abfragen kann

Die Einzel-Abfragen (SELECTs) des UNION-Statements werden wie ein einziges SELECT behandelt und ausgeführt. Gleiches gilt auch bei verknüpften Abfragen (JOINs), wenn diese etwa "Sub-Selects" enthalten oder mit anderen Techniken geschachtelt werden.

Mithin können sowohl JOIN als auch UNION deine Frage beantworten. Entscheidend ist, was du tatsächlich als Ergebnis brauchst.

--------------------------

Beispiel: Du hast zwei Tabellen (A) und (B). Beide Tabellen haben die Felder (a-e).

Mit JOINs kannst du so abfragen, dass du als Ergebnis eine Tabelle erhältst, die so aussehen kann:

Aa Ba Ac Ae Bb Bc Bd

Mit UNIONs kannst du so abfragen, dass du als Ergebnis eine Tabelle erhältst, die so aussehen kann:

Aa Ac Ae
Ba Bb Bc

---------------------------

  • Mit einem JOIN verknüpfst du also "in die Breite"; die Ergebnisse beider Tabellen werden in eine Zeile geholt.
  • Mit einem UNION verknüpfst du hingegen "in die Tiefe"; die Ergebnisse beider Tabellen werden in insgesamt zwei Zeilen (eine pro Tabelle) geholt.
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Muadeep
12.07.2016, 09:50

UNION wäre das, was ich suche. Und wie sieht dann so ein Statement aus? Oder sind das mehrere select Anfragen in einer in einem select verschachtelt? Ich muss ja die gesamte Ergebnisliste sortieren und Filtern können.

Bisher schon mal super :)

0