DELETE und JOIN?

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

  • DELETE und JOIN?

    Hallo,
    ich kann diese Join Abfrage zum Vergleich zweier tabellen wunderbar wie folgt nutzen:

    SELECT
    *
    FROM
    tabelle1
    INNER JOIN tabelle2 ON tabelle1.spalte = tabelle2.spalte

    Jetzt möchte ich aber aus der Tabelle1 die Zeilen die mit Tabelle2.spalte übereinstimmen löschen, wenn ich statt select delete setze, bekomme ich EINEN Fehler

    DELETE FROM tabelle1 INNER JOIN tabelle2 ON tabelle1.spalte = tabelle2.spalte



    Gruß
    flo

  • #2
    da fehlt mindestens das WHERE das sagt welche teile gelöscht werden sollen.
    anderen falls würde es die ganze tabelle löschen wenn der join nicht wäre

    DELETE FROM tabelle1
    WHERE
    tabelle1.spalte = tabelle2.spalte

    Kommentar


    • #3
      Auch mit HERE habe ich es schon versucht.

      DELETE FROM tabelle1 INNER JOIN tabelle2 ON WHERE tabelle1.spalte = tabelle2.spalte

      You have an error in your SQL syntax near 'INNER JOIN ...' at line 1


      Ich glaube, wenn ich das ON weglasse, löscht es mir die ganze Tabelle

      So, wie du es gemacht hast, bekomme ich:
      Unknown table 'tabelle2' in where clause

      Gruß
      flo

      Zuletzt geändert von flo; 08.04.2004, 19:22.

      Kommentar


      • #4
        du musst natürlich die tabellen definieren und entsprechend benennen!

        DELETE
        FROM datenbankname.tabellename1 AS t1, datenbankname.tabellename2 AS t2
        WHERE
        t1.spalte = t2.spalte

        das sollte gehen!
        wobei ich nicht sicher bin ob er aus beiden tabellen die stücke löscht
        anderen falls bracuhst du ids au tabelle eins um sie zu definieren... bin gerade nicht sicher aber mit einem join kann man nicht löschen da es eine funktion des selects ist
        Zuletzt geändert von flobee; 08.04.2004, 20:04.

        Kommentar


        • #5
          hab den teil mal aus meinem sticky abgetrennt, weil er da nichts verloren hat

          hast du mal auf nachgeschaut, ob deine mysql-version aus mehrrerentabellen löschen kann?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Wie kann ich das den herausfinden?

            Ich nutze: phpMyAdmin 2.5.1 mit MySQL 3.23.55-Max-log nehme mal an, dass es die mysql version ist.

            Kommentar


            • #7
              handbuch?
              doku?
              lesen?

              http://dev.mysql.com/doc/mysql/de/DELETE.html
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X