Beim Union - Operator Tabellenname mit in Ergebnistabelle

ITrun90

Benutzer
Beiträge
6
Hi,

ich habe folgende Situation:

2 Tabellen beinhalten die gleiche Datenstruktur, um Daten von Personen in verschiedenen Städten zu Speichern, da die Tabellen sonst zu groß werden würden. Wir nennen die Tabellen StadtA und StadtB.

Für eine Aufgabe jedoch brauche ich alle Datensätze von den beiden Tabellen. Dies löse ich mithilfe von:

SELECT * FROM StadtA UNION SELECT * FROM StadtB

Das Problem, welches sich nun ergibt, ist, dass ich aus der Ergebnistabelle nicht herausfinden kann, welche Zeilen nun von welcher Stadt kommen. Gibt es eine Möglichkeit, der Ergebnistabelle eine Spalte mit dem Tabellennamen anzuhängen?
 
Werbung:
Hi,

ich habe folgende Situation:

2 Tabellen beinhalten die gleiche Datenstruktur, um Daten von Personen in verschiedenen Städten zu Speichern, da die Tabellen sonst zu groß werden würden. Wir nennen die Tabellen StadtA und StadtB.

Für eine Aufgabe jedoch brauche ich alle Datensätze von den beiden Tabellen. Dies löse ich mithilfe von:

SELECT * FROM StadtA UNION SELECT * FROM StadtB

Das Problem, welches sich nun ergibt, ist, dass ich aus der Ergebnistabelle nicht herausfinden kann, welche Zeilen nun von welcher Stadt kommen. Gibt es eine Möglichkeit, der Ergebnistabelle eine Spalte mit dem Tabellennamen anzuhängen?


Über wie viele Rows reden wir eigentlich?

Egal. Select 'stadt_a' as stadt, * from stadt_a union all select 'stadt_b', * from stadt_b;

Unabhängig davon denke ich, daß Du da massiv vieles falsch machst.
 
Werbung:
Den Tabellennamen mit auszugeben ist einfach, eine "zu große" Tabelle klingt aber nach massiven Fehldesign. Warum sollten 2 Tabellen im UNION schneller sein als eine einzelne? Jeglicher Index wird nutzlos. Den Tabellennamen kannst du zwar ausgeben aber ein weiterer Select kann darauf nicht aufbauen.
 
Zurück
Oben