[MySQL] "Tote" Datensätze finden

Eroli

Erfahrenes Mitglied
Hallo zusammen,

da ich schockiert feststellen durfte, dass beim Umstieg auf meinen Webserver irgendetwas schiefgegangen ist, muss ich nun die referentielle Integrität widerherstellen und dazu muss ich die toten Datensätze, die mittlerweile entstanden sind (dürften nicht viele sein), löschen...

Leider klappt das folgende nicht:
SQL:
SELECT * FROM tableA a
INNER JOIN tableB b ON b.PK_ID = b.FK_ID
WHERE b.Title IS NULL

Dabei hab ich die Situation, dass in Table A Datensätze existieren, die auf Tabelle b zeigen. Diese will ich löschen.

Wie mache ich das am besten?
 
So klappt es nun doch:

SQL:
DELETE FROM TableA a WHERE NOT EXISTS (SELECT * FROM TableB b WHERE b.ID=a.ID);
 
Oder der klassische Weg mit LEFT JOIN
SQL:
DELETE 
	TableA 
FROM 
    TableA 
    LEFT JOIN TableB
    	ON TableA.id = TableB.id
WHERE
	TableB.id IS NULL
 
Zuletzt bearbeitet von einem Moderator:
Zurück