Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление из нескольких таблиц 
:(
    Опции темы
supercelt
Дата 29.9.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



помогите пож. с запросом. для MySQL

Есть таблица albums

----id_album----folder_name----date_add-----
          1                 456                57476457
          2                 674                46364356


Есть таблица gallery_images

----id_image-----file_image----album-----date_add------
        1               regfre.jpg        456         4675675
        2               rgfrg.gif            456        435434
        3                frfwerf.jpg       456          4575676

Есть таблица gallery_comments

---id_comment--------comment--------id_image_comment------
        1                       efergetrgr                   2
        2                       efrgregregfr                3
        3                       ewefregrfrg                3

Как видно из таблиц связь идёт по полям album, id_image, id_image_comment.

В табл gallery_images хранятся данные о кртинках, а в gallery_comments - комментарии к картинкам. А в album  - албомы/ 
Надо одним запросом удалить альбом у которого id =1, соответственно просканить какие в нём картнки (folder_name->album) и удалить комменты от удаляемых картинок(id_image->id_image_comment)/ 

HELP
PM   Вверх
Magnifico
Дата 29.9.2008, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 4
Всего: 17



Код

delete from gallery_comments
where id_comment in
(
select gc.id_comment
from albums as a
join gallery_images as gi
on a.folder_name =gi.album 
join gallery_comments as gc
on gi.id_image = gc.id_image_comment
where a.id_album =1
)
--------------------------------
delete from gallery_images
where id_image in
(
select gi.id_image
from albums as a
join gallery_images as gi
on a.folder_name =gi.album 
where a.id_album =1
)
--------------------------------
delete from albums
where id_album =1


Это сообщение отредактировал(а) Magnifico - 29.9.2008, 18:21


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Zloxa
  Дата 30.9.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Magnifico @  29.9.2008,  18:20 Найти цитируемый пост)
delete


Цитата(Magnifico @  29.9.2008,  18:20 Найти цитируемый пост)
delete


Цитата(Magnifico @  29.9.2008,  18:20 Найти цитируемый пост)
delete

 smile 

Цитата(supercelt @  29.9.2008,  14:38 Найти цитируемый пост)
Надо одним запросом

 smile 

Это сообщение отредактировал(а) Zloxa - 30.9.2008, 17:22


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 30.9.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: нет
Всего: 211



foreign key - on delete cascade. Хотя возмовно в MySQL его нет, не уверен
PM   Вверх
mysqlconsulting
Дата 3.10.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.9.2008

Репутация: нет
Всего: 1



DELETE FROM 
    albums,
    gallery_images,
    gallery_comments
USING
    albums,
    gallery_images,
    gallery_comments
WHERE
    albums.id_album = 1
AND
    gallery_images.album = albums.id_album
AND
    gallery_comments.id_image_comment = gallery_images.id_image



PM MAIL WWW   Вверх
Magnifico
Дата 4.10.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 4
Всего: 17



синтаксис специфичен (наверно только для mysql ) , а будет ли он учитывать ссылочную целостность между таблицами,
когда мы не можем удалить из gallery_images пока есть  записи в gallery_comments
и удалить из albums пока есть записи в gallery_images ?


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
mysqlconsulting
Дата 7.10.2008, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.9.2008

Репутация: нет
Всего: 1



Если вам нужна ссылочная целостность, тогда delete cascade
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.