Also ich habe eine user Datenbank. Die haben Themen, Kommentare usw.
Wenn ich jetzt Daten vom User löschen möchte, ohne aber den Nutzer zu löschen, sollen ementsprechend alle Datensätze mit der gleichen UserID gelöscht werden. Dass dies geht mit mehreren Queries ist klar. Aber geht das auch in einem Query,wenn die Tabellen je unterschiedliche Daten aufweisen können?
Also ich meine wir haben die Tabelle User, News, Kommentare, Gruppen
Tabelle User
ID User_id
Tabelle News
ID User_id News
Tabelle Komentare
ID User_id Kommentar
Tabelle Gruppe
ID User_id Gruppenname
Jetzt hat der User z.B. X x News, Y x Kommentare, Z x Gruppen. Ich möchte also alle News, Kommentare und Gruppen löschen. Es kann aber auch sein, dass ein User mal keine News, Kommentare oder Gruppen hat. Das variiert ja.
Kann man das in einem Query lösen? Ich habe es schon nach der mysql doku versucht mit USING usw. aber das klappt nicht so recht. Nutze MYISAM.
Wenn in News und Kommentare sowie Gruppen Daten vorhanden sind, dann klappt folgendes.
Fehlt aber ein Datensatz in einer der Tabellen klappt es halt nicht. Kann auch sein, dass ich einen Denkfehler habe. Im Moment komme ich aber nicht dahinter.
Wäre super, wenn Jemand eine Idee hätte.
Wenn ich jetzt Daten vom User löschen möchte, ohne aber den Nutzer zu löschen, sollen ementsprechend alle Datensätze mit der gleichen UserID gelöscht werden. Dass dies geht mit mehreren Queries ist klar. Aber geht das auch in einem Query,wenn die Tabellen je unterschiedliche Daten aufweisen können?
Also ich meine wir haben die Tabelle User, News, Kommentare, Gruppen
Tabelle User
ID User_id
Tabelle News
ID User_id News
Tabelle Komentare
ID User_id Kommentar
Tabelle Gruppe
ID User_id Gruppenname
Jetzt hat der User z.B. X x News, Y x Kommentare, Z x Gruppen. Ich möchte also alle News, Kommentare und Gruppen löschen. Es kann aber auch sein, dass ein User mal keine News, Kommentare oder Gruppen hat. Das variiert ja.
Kann man das in einem Query lösen? Ich habe es schon nach der mysql doku versucht mit USING usw. aber das klappt nicht so recht. Nutze MYISAM.
Wenn in News und Kommentare sowie Gruppen Daten vorhanden sind, dann klappt folgendes.
Code:
DELETE FROM Kommentare, News, Gruppe USING Kommentare, News, Gruppe, Users AS U
LEFT JOIN Kommentare AS K
ON K.user_id = U.user_id
LEFT JOIN News AS N
ON N.user_id = U.user_id
LEFT JOIN Gruppe AS G
ON G.user_id = U.user_id
WHERE U.user_id = 1
Fehlt aber ein Datensatz in einer der Tabellen klappt es halt nicht. Kann auch sein, dass ich einen Denkfehler habe. Im Moment komme ich aber nicht dahinter.
Wäre super, wenn Jemand eine Idee hätte.
Zuletzt bearbeitet: