Datensätze löschen über 2 Tabellen...

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

  • Datensätze löschen über 2 Tabellen...

    Hallo zusammen,

    ich glaube, ich stehe mal wieder total auf der Leitung, aber ich komm einfach nicht auf einen Lösungsansatz.

    Ich hab eine Tabelle mit Konzerten und den Details dazu. In einer anderen Tabelle hab ich dann die Termine des Konzertes mit der id des jeweiligen Konzertes.

    Die Termine lasse ich automatisch löschen, wenn sie schon vorbei sind.

    Wie lösche ich nun aber das komplette Konzert, wenn es keinen Termin mehr zu diesem Konzert gibt?

    Vielen Dank schon mal!

  • #2
    Wenn du den letzten Eintrag der Konzerttermine löschst, kannst du über die id doch auch die Detailinfos aus der anderen Tabelle löschen.

    Kommentar


    • #3
      Hm...und woher soll man wissen, dass das der letzte Datensatz zu der ID war? Ich lass ja einfach alle Termine löschen, wo das datum kleiner als now() ist.

      Ich bräuchte dann quasi eine Möglichkeit, wo man alle Konzerte löscht, wenn er keinen Termin mehr dazu findet. Aber wie soll sowas aussehen?

      Oder hab ich hier bereits meinen Denkfehler?

      Kommentar


      • #4
        Mit nem Trigger vielleicht ? Zumindest MySQL 5 kann doch sowas, mein ich irgendwo gelesen zu haben.

        Kommentar


        • #5
          Ok hat sich erledigt. Hab das richtige gefunden.

          SELECT
          t1.zahl
          FROM
          tabelle1 t1
          LEFT JOIN tabelle2 t2 USING(tab1_id)
          WHERE
          t2.tab1_id IS NULL
          Damit suche ich alle Konzerte, zu denen es keinen Termin mehr gibt und diese lösche ich dann wiederum in einer Schleife.

          Trotzdem Danke!

          Kommentar


          • #6
            Wenn mich nicht alles täuscht, kannst du statt SELECT ein DELETE einsetzen. Ob ein DELETE bei MySQL Joins kennt, weiß ich nicht. Allerdings ist hier auch ein "implizites Inner Join" verwenden.

            Kommentar

            Lädt...
            X