Jurik: MySQL Update Query mit Subquery auf gleiche Tabelle

Server Version: 5.0.51b-log

Was die Fehlermeldung aussagt, ist mir völlig klar. Das ich diesen Beispiel-Query umstellen kann, ist mir auch klar. Es geht um das Prinzip, dass ich einen Subquery auf die Tabelle machen möchte, wo ich das Update drauf ausführe.

Weiß jemand ob das irgendwie bei MySQL möglich ist?

 UPDATE Games_rating AS T1 SET T1.gr_rating =5 WHERE T1.GRID = (  SELECT T2.GRID  
FROM Games_rating AS T2  
WHERE T2.gr_uid =6  
AND T2.gr_gdid =5 )  
LIMIT 1  
  
MySQL meldet: Dokumentation  
#1093 - You can't specify target table 'T1' for update in FROM clause 
  1. yo

    Was die Fehlermeldung aussagt, ist mir völlig klar.  Es geht um das Prinzip, dass ich einen Subquery auf die Tabelle machen möchte, wo ich das Update drauf ausführe.

    wennn das mysql in deiner version nicht kann und es dir klar ist, dann verstehe ich nicht, was du suchst. es geht eben nicht.

    Ilja

    1. wennn das mysql in deiner version nicht kann und es dir klar ist, dann verstehe ich nicht, was du suchst. es geht eben nicht.

      Eventuell geht es ja mit Views oder anderen Sachen, wovon ich keine Ahnung habe - deshalb frage ich hier.

      1. yo,

        Eventuell geht es ja mit Views oder anderen Sachen, wovon ich keine Ahnung habe - deshalb frage ich hier.

        sicherlich gibt es noch andere wege, die zum ziel führen. aber du hast ja explizit geschrieben : "dass ich einen Subquery auf die Tabelle machen möchte, wo ich das Update drauf ausführe."

        und da ist doch die fehlermeldung eindeutig oder nicht ?

        Ilja

        1. und da ist doch die fehlermeldung eindeutig oder nicht ?

          Ich würde mir wünschen, das hier nur Leute antworten, die mir nicht das Offensichtliche, was ich schon selbst herausgefunden habe, nochmal vorlesen.

          Ich freue mich über andere Lösungswege. Abgesehn von einem Lösungsweg der mehrere Queries als Ansatz nimmt.

          Dann lieber keine Antwort ;) - da spar ich mir nämlich das Klicken.

  2. echo $begrüßung;

    [...] einen Subquery auf die Tabelle machen möchte, wo ich das Update drauf ausführe.
    Weiß jemand ob das irgendwie bei MySQL möglich ist?

    Das ist nicht möglich. Als Workaround kann man eine temporäre Tabelle verwenden.

    echo "$verabschiedung $name";