DELETE mit INNER JOIN

Unicate

Erfahrenes Mitglied
Hallo, ich möchte mehrere Datensätze löschen, die in 2 tabellen mit einander in Beziehung stehen.

Ich habe das :
Code:
DELETE FROM 
  puz_words INNER JOIN puz_keywords 
  ON puz_words.keyword_id = puz_keywords.id 
WHERE 
  puz_keywords.plugin_id = '1';

versucht, er gibt mir aber einen Fehler.
habt ihr ne dolle Idee?
 
Bin mir nicht sicher aber versuch es mal so:

Code:
DELETE FROM 
  puz_keywords INNER JOIN puz_words 
  ON puz_words.keyword_id = puz_keywords.id 
WHERE 
  puz_keywords.plugin_id = '1';

mfG
ZeroEnna
 
Das geht mit Subqueries:
Code:
DELETE FROM 
  puz_words
WHERE 
  puz_words.keyword_id IN (
    SELECT 
      puz_keywords.id
    FROM
      puz_keywords
    WHERE
      puz_keywords.plugin_id = '1'
  );
Gruß hpvw
 
hi,
hatte letztens auch das Problem du musst es so machen:
DELETE
tabellennamen
From
tabellennamen so wie oben auch mit Inner Join und so
WHERE
usw.

Floooo
 
MySQL 4.1.13-nt
Funktioniert auch nicht mit Subquerys

Ich hoffe, das das nicht an der DB - Version liegt, da es sicher auch vorkommt, das neuere oder ältere verwendet werden
 
Unicate hat gesagt.:
MySQL 4.1.13-nt
Funktioniert auch nicht mit Subquerys
Ab 4.1 sollten Subqueries funktionieren.
Vielleicht postest Du mal eine Fehlermeldung, das Query, das Du verwendet hast oder einfach ein paar mehr Informationen über das was Du vorhast. Da Dein ursprüngliches Query syntaktisch falsch ist, kann keiner ahnen, was Du damit semantisch meinst.

Gruß hpvw
 
Er bringt keine Fehlermeldung, was eigentlich heissen sollte, dass es funktioniert.
Aber nach dem Beispiel oben, lösche ich die eine Tabelle vollständig.
Und das ist nicht gut!
 
Thx, Floo hat recht.

delete meinetabelle
from meinetabelle MT
left join deinetabelle DT
on MT.key = DT.key

mfg, DZY
 

Neue Beiträge

Zurück