Stefan G.: MySQL: temporäre Tabelle

Hallo zusammen,

ich arbeite mit MySQL, Vers. 3.22.32 und ich möchte folgendes SQL-Statement abschicken:

CREATE TEMPORARY TABLE tmpTable TYPE=HEAP
SELECT FELD1, COUNT(ID) AS FELD2
FROM tblTable
GROUP BY FELD1;

Allerdings erhalte ich als Fehlermeldung einen Syntaxfehler.
Es scheint so zu sein, dass CREATE und SELECT nicht zusammenpassen. Dabei habe ich dieses Statement, wie in dem MySQL-Buch von M. Kofler (Addison Wesley) beschrieben, zusammengebaut.

Woran kann es liegen, dass es nicht funktioniert? MySQL-Version? Provider (=Strato)? Oder tatsächlich ein Syntaxfehler?

Wenn es tatsächlich mittels temporärer Tabellen nicht funktioniert, welche anderen Workarounds existieren, um die Nichtunterstützung von Subselects zu umgehen.

Viele Grüße
Stefan

  1. Hallo!

    ich arbeite mit MySQL, Vers. 3.22.32 und ich möchte folgendes SQL-Statement abschicken:

    Strato verwendet so eine alte MySQL version? Vielleicht liegt es auch daran, das ist ja schon _richtig_ alt!
    Aktuell ist 3.23.55!

    CREATE TEMPORARY TABLE tmpTable TYPE=HEAP
    SELECT FELD1, COUNT(ID) AS FELD2
    FROM tblTable
    GROUP BY FELD1;

    Allerdings erhalte ich als Fehlermeldung einen Syntaxfehler.
    Es scheint so zu sein, dass CREATE und SELECT nicht zusammenpassen.

    Doch, siehe: http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#CREATE_TABLE

    Dabei habe ich dieses Statement, wie in dem MySQL-Buch von M. Kofler (Addison Wesley) beschrieben, zusammengebaut.

    Woran kann es liegen, dass es nicht funktioniert? MySQL-Version? Provider (=Strato)? Oder tatsächlich ein Syntaxfehler?

    Kann sein, ich sehe keinen Fehler im SQL-Code. Vieleicht hat Strato da was deaktiviert, wie schickst Du die Query an die Datenbank? PHP? Kommt der Systax-Fehler von MySQL oder von PHP? Wenn Du PHP verwendest - läßt Du Dir mysql_error() ausgeben?

    Sonst versuch es doch mal im Eingabe-Feld von PHPMyAdmin!

    Vielleicht hilft Dir auch:
    http://de.mysql.com/documentation/mysql/bychapter/manual.de_Deutsch.html#ANSI_diff_Sub-selects

    Viele Grüße
    Andreas

    1. Hallo Andreas,

      Woran kann es liegen, dass es nicht funktioniert? MySQL-Version? Provider (=Strato)? Oder tatsächlich ein Syntaxfehler?
      Kann sein, ich sehe keinen Fehler im SQL-Code. Vieleicht hat Strato da was deaktiviert, ...

      Ich vermute ja auch, dass es an der MySQL-Version bzw. Konfiguration  von Strato liegt. Aber lässt sich sowas wie CREATE ... SELECT tatsächlich deaktivieren?

      ...wie schickst Du die Query an die Datenbank? PHP? Kommt der Systax-Fehler von MySQL oder von PHP? Wenn Du PHP verwendest - läßt Du Dir mysql_error() ausgeben?

      Ich verwende auch PHP, aber der Syntaxfehler kommt von MySQL.

      Sonst versuch es doch mal im Eingabe-Feld von PHPMyAdmin!

      Genau das habe ich auch gemacht.

      Vielleicht hilft Dir auch:

      »»http://de.mysql.com/documentation/mysql/bychapter/manual.de_Deutsch.html#ANSI_diff_Sub-selects
      Da werde ich mal reinschauen. Vielen Dank!

      Gruß, Stefan