Andreas-Lindig: MySql: Unterabfrage mit temporärer Tabelle simulieren

Beitrag lesen

Moin!
auch so,

steht aber nicht so da...

Ich habe mich bemüht, so gründlich wie möglich zu kommentieren, das reißt leider den Code auseinander...

also nochmal zusammenhängender:

//meine DB heißt forum, meine Tabelle forum_haupt
//erzeugt eine temporäre Tabelle und füllt sie mit Inhalt
CREATE TEMPORARY TABLE tmp
SELECT ID, Zeitpunkt FROM forum_haupt

//abfrage der temporären Tabelle
SELECT * FROM tmp
-> Fehlermeldung: "table 'meine_datenbank.tmp' doesn't exist")

Ich habe es auch mit CREATE und extra INSERT INTO tmp versucht - gleicher Fehler. Also habe ich einen Minimaltest versucht, um Fehler zu finden:

Test1 (kann man die tmp-Tabelle erzeugen?):
------------------------------------------

CREATE TEMPORARY TABLE tmp (meine_spalte INT(4))
-> keine Fehlermeldung, wiederhole das Statement:

CREATE TEMPORARY TABLE tmp (meine_spalte INT(4))
-> Fehlermeldung: "table 'tmp' already exists"
DAS ERSTE STATEMENT HAT ALSO FUNKTIONIERT!

Test2 (kann man die Tabelle tmp anlegen und löschen?):
-----------------------------------------------------

CREATE TEMPORARY TABLE tmp (meine_spalte INT(4))
-> keine Fehlermeldung

DROP TABLE tmp
-> keine Fehlermeldung FUNKTIONIERT ALSO! wiederhole zum Test dieses Statement:

DROP TABLE tmp
-> Fehlermeldung: "unknown table 'tmp'"
ES IST IM VOR-STATEMENT OFFENSICHTLICH ETWAS GELÖSCHT WORDEN!

Fazit:
-----
Die Tabelle wird angelegt und gelöscht - so wie geplant.
Aber warum kann man sie dann nicht abfragen, so wie ich es anfangs versucht habe?