MySQL: DS aus Tabelle A anhand DS aus Tabelle B Löschen

VBFreak

Mitglied
Hallo erstmal,

ich finde für mein Problem nicht das richtige SQL-Statement.

Ich habe zwei Tabellen:

Tabelle A (hat keinen Primärschlüssel):
  • Host, VARHAR(15), indiziert
  • Time, DATETIME, indiziert
  • Request, TEXT
  • Referer, TEXT, indiziert (10)
Tabelle B:
  • RefererID, INTEGER, AUTO_INCREMENT, PRIMARY KEY
  • Referer, TEXT
Ich möchte gerne alle DS aus Tabelle A löschen deren Referer zu keinem Referer in Tabelle B passt. Wie muss dazu das SQL-Statement aussehen?
 
Wenn du nur das SQL-Statement brauchst kann ich dir leider nicht helfen. Für das bin ich einfach zu schlecht mit PHP müsstest du einfach eine kleine Funktion erstellen.
 
Wie wär's mit Folgendem?
Code:
DELETE
        `a`
  FROM
        `tabellea` `a`,
        `tabelleb` `b`
  WHERE
        `b`.`referer` != `a`.`referer`
 
Danke für deine Hilfe, aber wenn ich das Statement
Gumbo hat gesagt.:
Code:
DELETE
        `a`
  FROM
        `tabellea` `a`,
        `tabelleb` `b`
  WHERE
        `b`.`referer` != `a`.`referer`
verwende, meldet MYSQL folgendes:
#1066 - Not unique table/alias: 'a'

Ich habe schon versucht über LEFT JOIN die entsprechenden DS zu finden, aber wenn ich dann mit WHERE abfrage, ob der referer aus Tabelle B NULL ist (was bei zu löschenden DS so wäre) kommen 0 DS als Resultat. Ohne WHERE funktioniert der JOIN und bei zu löschenden DS steht bei TabelleB.Referer NULL drin.
 
Zuletzt bearbeitet:
Zurück