jako że SQL nie jest moją najmocniejszą stroną mam problem z Usuwaniem rekordów z wielu tabel jednym zapytaniem.
DELETE FROM `history`, `thumb`, `photos`, `images`,`group` USING `history`, `thumb`, `photos`, `images`, `group` WHERE `group`.`group_id` = 1 AND `images`.`img_group` = 1 AND `history`.`photo_id` = `photos`.`photo_id` AND `history`.`thumb_id` = `thumb`.`thumb_id` AND `photos`.`img_id` = `images`.`img_id` AND `thumb`.`photo_id` = `photos`.`photo_id`;
Problem polega na tym że MySQL nie usuwa żadnych rekordów (nie pokazuje też błędu)
Ten Delete ma usuwać określone pola z tabel:
Kod
`history`, `thumb`, `photos`, `images`,`group`
Tabele wyglądają tak:
group
Kod
group_id | group_name|...
images
Kod
img_id|group_id|...
photos
Kod
photo_id|img_id|...
thumbs
Kod
thumb_id|photo_id
history
Kod
history_id|photo_id|thumb_id|...
Jeśli chodzi o tabelę history w jednej pozycji jest albo photo_id albo thumb_id nigdy jednocześnie
Cała operacja ma wyglądać tak że usuwam wszystko o group_id i kolejno wszystkie rekordy z tych tabel ktore naleza do tej grupy. Group zawiera images, images zawierają photos, photos zawierają thumbs a history zawiera kopie thumbs lub photos.
Kod
group
|
images
|
photos \
| history
thumbs /
|
images
|
photos \
| history
thumbs /
Czy da się jednym zapytaniem usunąć rekordy?
Bo robienie kilku selektów i pętl strasznie obciązy serwer.