Rolf b: Sql Abfrage Union

Beitrag lesen

Der erste SELECT erzeugt eine temporäre Table mit einer Row und Spaltennamen (View, Value). Bestimmt nicht.

Bestimmt doch, weil es keine physische Tabelle gibt auf die er sich beziehen kann. Ist natürlich alles im RAM des Servers, aber eine temporäre Tabelle MUSS es sein weil es ohne Table kein Resultset gibt. Und UNION vereint Resultsets. Aber ich glaube, das artet jetzt in das Spalten gespaltener Haare aus.

Sonst müsste ja jede Abfrage, die Aliasnamen verwendet, eine temporäre Tabelle erzeugen.

Siehe oben - Table vs Resultset.

Für den Vergleich zwischen den Verhaltensweisen der Server müsste man noch berücksichtigen, dass ich das mit MS SQL Server gemacht habe und nicht mit MySQL. Wenn Du andere Feinheiten bei Typkonvertierung etc. erlebt hast, dann kann es sein, dass die beiden an der Stelle unterschiedlich spezifiziert sind, was nahelegt, dass dieser UNION über den standardisierten Teil von SQL hinausgeht. Das habe ich nicht nachgelesen. Ich hab's nur ins Query-Window des SQL Server Management Studio eingetippert.

Meine Aussage zu "Unsinn oder nicht" bezog sich übrigens nur auf die grundsätzliche Idee, eine konstante Row und ein Resultset per UNION zu vereinigen. Die konkreten Besonderheiten wie unterschiedliche Spaltennamen oder mögliche inhaltliche Unsinnigkeiten der Werte habe ich dabei nicht betrachtet.

So, und jetzt mach ich Urlaub, viel Spaß miteinander :)

Rolf