[MySQL 4.1] Aus 2 Tabellen löschen...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.1] Aus 2 Tabellen löschen...

    Moin, Beide Tabellen haben eine Spalte namens user_id.
    Im Manual von MySQL steht, das auch auf DELETE-Statements Joins angewendet werden könne, aber ich schaffe es nicht. Aus beiden Tabellen sollen die Zeilen gelöscht werden, wo user_id = $_sql->row[2] ist.

    PHP-Code:
    $_sql->query("
      DELETE x, y
      FROM "
    .$_sql->prefix()."registration_verifications AS x, ".$_sql->prefix()."participants AS y
      USING (user_id)
      WHERE user_id = '"
    .$_sql->row[2]."'
    "
    ); 
    Die auftretende Fehlermeldung:
    1066: Not unique table/alias: 'x'

    Ich hoffe Ihr könnt helfen. Danke.
    Zuletzt geändert von uschi; 29.06.2005, 15:06.

  • #2
    Re: [MySQL 4.1] Aus 2 Tabellen löschen...

    DELETE x, y FROM tabelle AS x, ...
    1066: Not unique table/alias: 'x'
    Mensch Uschi, DELETE löscht nur Tupel, Tabellen entfernt man mit DROP.

    Kommentar


    • #3
      Auf den ersten Blick sieht die Syntax für eine MySQL 4.1 ganz korrekt aus ... fehlen tut auf jeden Fall der Tabellen Alias in der WHERE-Clause ...

      Laß Dir doch mal den, fertig zusammengebauten, Querystring anzeigen ... !
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Re: Re: [MySQL 4.1] Aus 2 Tabellen löschen...

        Original geschrieben von onemorenerd
        Mensch Uschi, DELETE löscht nur Tupel, Tabellen entfernt man mit DROP.
        Dann lies die mal die DELETE-Syntax im Manual durch!

        Kommentar


        • #5
          Original geschrieben von goth
          Auf den ersten Blick sieht die Syntax für eine MySQL 4.1 ganz korrekt aus ... fehlen tut auf jeden Fall der Tabellen Alias in der WHERE-Clause ...

          Laß Dir doch mal den, fertig zusammengebauten, Querystring anzeigen ... !
          Querystring: DELETE x, y FROM quiz_registration_verifications AS x, quiz_participants AS y USING (user_id) WHERE user_id = '27'

          Wieso muss ich denn überhaupt den TabAlias in der WHERE-Klausel eintragen? ich verstehe es nicht.

          Kommentar


          • #6
            Ich HIRSCH, arbeite ja garnicht mit der 4.1 sondern mit der
            4.0.23-Max-log

            Kommentar


            • #7
              [MySQL 4.0] Nochmal.. Aus 2 Tabellen löschen

              Aus den beiden in DELETE angegeben Tabellen x und y sollen die Datensätze gelöscht werden, wo die user_id = $_sql->row[3] ist.
              PHP-Code:
                              $_sql->query("DELETE ".$_sql->prefix()."registration_verifications,
                                                   "
              .$_sql->prefix()."participants          
                                            FROM "
              .$_sql->prefix()."registration_verifications AS x,
                                                 "
              .$_sql->prefix()."participants AS y
                                            WHERE x.user_id = y.user_id AND x.user_id = '"
              .$_sql->row[3]."'"); 
              Was ist hier falsch? Bin langsam am verzeifeln.

              Kommentar


              • #8
                Re: [MySQL 4.0] Nochmal.. Aus 2 Tabellen löschen

                unterlasse bitte die verdammten doppelpostings!
                *zusammenführ*

                wandert nächstes mal sofort auf den müll.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Versuche es mal mit eine JOIN Anweisung :

                  In deinem ersten Posting
                  PHP-Code:
                   $_sql->query("
                    DELETE x, y
                    FROM "
                  .$_sql->prefix()."registration_verifications AS x, ".$_sql->prefix()."participants AS y
                    USING (user_id)
                    WHERE user_id = '"
                  .$_sql->row[2]."'
                  "
                  ); 
                  nutzt Du USING ohne JOIN was m.E. falsch ist

                  sollte evtl gehen als:
                  PHP-Code:
                  $_sql->query("
                    DELETE x, y
                    FROM "
                  .$_sql->prefix()."registration_verifications AS x (INNER|LEFT|RIGHT)  JOIN ".$_sql->prefix()."participants AS y
                  (  USING (user_id) | ON x.userid=y.userid)
                    WHERE user_id = '"
                  .$_sql->row[2]."'
                  "
                  ); 
                  sonst siehts vielversprechend aus

                  -----
                  NOTE:
                  If you want to use a left join in you delete statement without using the 'USING' syntax (as posted by wendy reetz) you must specify the tables you want to delete from like this:

                  DELETE t1, t2 FROM table1 AS t1 LEFT JOIN table2 as t2 ON...
                  or
                  DELETE table1, table2 FROM table1 LEFT JOIN table2 ON...

                  You cannot ommit the bit between DELETE and FROM. It actually says so in the manual above, but it's easy to miss!
                  http://dev.mysql.com/doc/mysql/en/delete.html
                  Zuletzt geändert von chansel0049; 01.07.2005, 08:44.
                  chansel0049
                  ----------------------------------------------------
                  if you've reached the bottomline - dig further!
                  Übersetzer gesucht? http://www.babelport.com

                  Kommentar

                  Lädt...
                  X