delete from -> mehere tabellen verknüpfen

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

  • delete from -> mehere tabellen verknüpfen

    hallo,
    ich habe 4 tabellen und möchte nun die einträge löschen in denen in zwei tabellen die bedingung übereinstimmt also z.B.
    $sql = "delete from tabelle1 as tab1 JOIN tabelle2 as tab2 JOIN ";
    $sql .= "tabelle3 as tab3 JOIN tabelle3 as tab4 WHERE tab1.spalte1 = '' AND tab4.spalte3 = ''";
    mysql_query($sql,$db);

    aber leider klappt das nicht. kann man so was nicht machen ?

  • #2
    hmm,

    das kann garnicht gehen weil es nicht logisch ist. Du musst schon irgendwelche Beziehungen eingeben zwischen allen Tabellen sonst weiss SQL nicht was es machen soll.
    Zumindestens sehe ich das so.

    Kommentar


    • #3
      mhm. das hatte ich schon versucht. wenn ich noch

      .. tab1.id = tab2.id AND tab3.id = tab4.id AND tab2.id = tab3.id ..
      dran hänge passiert trotzdem nichts.

      Kommentar


      • #4
        Also so nicht... Erstmal machst du die Performance (und auch die Syntax) des Joins zunichte, indem du die WHERE-Bedingung verwendest, wo eine ON oder USING()-Klausel angebracht wäre... Zweitens unterstützt DELETE keine JOINs. Mach es entweder nur mit WHERE oder mit einem SELECT des Primary Keys mit dem entspr. JOIN und lösche dann die entsprechenden Daten mit DELETE.

        CAT Music Files

        Kommentar


        • #5
          mhm. eigentlich wollte ich es ja genau nicht mit select machen ... wie geht es denn mit einem rutsch über delete?
          danke

          Kommentar


          • #6
            $sql = "DELETE tabelle1 FROM tabelle1 AS tab1, tabelle2 AS tab2, ";
            $sql .= "tabelle3 AS tab3, tabelle3 AS tab4 WHERE tab1.spalte1 = '' AND tab4.spalte3 = ''";

            ...sollte seinen Zweck erfüllen.

            CAT Music Files

            Kommentar

            Lädt...
            X