delete from -> mehere tabellen verknüpfen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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.

      Comment


      • #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

        Comment


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

          Comment


          • #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

            Comment

            Working...
            X