Michael Schröpl: mySQL Tabelle->Tabelle

Beitrag lesen

Hi Micha,

Antwort:
Sowas geht in mySQL nicht, da es in der derzeitigen Version keine
Subselects unterstützt. Da mußt Du schon 2 Queries machen (erst die
innere, dann mit dem Resultat die äußere bedienen).
Frage darauf:
Wie übergeb ich das Resultat an die 2te Tabelle. Brauch irgend einen
Ansatz.

mir ist nicht ganz klar, wie Deine Frage mit der vorherigen Antwort zusammenhängt.

Ein Subselect ist ja das Ergebnis einer "inneren" Abfrage, welches selbst innerhalb einer "äußeren" Abfrage syntaktisch verwendet wird, als wäre es eine statische Tabelle.

Die Datenbank-Engine führt dabei im Wesentlichen zuerst die "innere" Abfrage aus, speichert implizit deren Ergebnis irgendwo dynamisch zwischen und führt dann die "äußere" Abfrage aus, wobei sie weiß, daß das Objekt hier keine "richtige" Tabelle ist.
Letzteres kann mySQL nicht "von selbst". Du mußt also eine "richtige" Tabelle nehmen, um das Ergebnis dort explizit zwischenzuspeichern.

Wäre dies eine normale "statische" Tabelle, dann bestünde die Gefahr, daß zwei gleichzeitig laufende Instanzen Deines Programms sich beim Versuch, eine Tabelle mit demselben Namen anzulegen, in die Quere kommen.

Um dies zu vermeiden, unterstützt mySQL ein anderes Feature, nämlich temporäre Tabellen. Syntaktisch sind diese (fast) identisch zu statischen Tabellen; sie existieren jedoch nur für diesen einen Prozeß (Sichtbarkeit ebenso wie Lebensdauer).

Viele Grüße
      Michael