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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление из 2 таблиц 1 запросом, Помогите пожалуйста составить запрос 
V
    Опции темы
rodendron
Дата 29.3.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем привет

У меня есть 2 таблицы: t1 и t2
Как мне 1 запросом удалить из обоих таблиц нулевые значения? (allv = 0)
Таблицы связаны между собой по t1.id = t2.id.
В t1 у меня значения allv.
В t2 ФИО и т.д.
Заранее благодарен.
PM MAIL   Вверх
Akina
Дата 29.3.2006, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Удаление из нескольких таблиц не предусмотрено синтаксисом.
Используй каскадное удаление (2 запроса) - в рамках одной транзакции.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
rodendron
Дата 29.3.2006, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сначала делаю как я понял:
Код

DELETE t1 WHERE allv = '0'

Затем
Код

DELETE t2 WHERE NOT EXISTS( SELECT * FROM t1 WHERE t1.id = t2.id)


?
smile
PM MAIL   Вверх
Akina
Дата 29.3.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Лучше наоборот - сперва удаляй связанные записи, использование JOIN быстрее чем подзапрос.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
rodendron
Дата 29.3.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Akina,
Приведите пожалуйста пример. Буду вам премного благодарен!
Так как не знал что удалять можно с использованием JOIN
PM MAIL   Вверх
Darhazer
Дата 29.3.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

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



Код
DELETE t2 FROM t1,t2 WHERE t1.id=t2.id AND t1.allv = '0'

DELETE t1 WHERE allv = '0'

А вообще, MySQL поддерживаеть удаление из несколько таблиц, но не знаю в каких версиях поддерживаеть его
http://dev.mysql.com/doc/refman/5.0/en/delete.html

Это сообщение отредактировал(а) Darhazer - 29.3.2006, 11:13


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
rodendron
Дата 29.3.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо!
PM MAIL   Вверх
Akina
Дата 29.3.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Цитата(Darhazer @ 29.3.2006, 12:12 Найти цитируемый пост)
MySQL поддерживаеть удаление из несколько таблиц, но не знаю в каких версиях поддерживаеть его


Цитата

DELETE [LOW_PRIORITY] [QUICK] table_name[.*] [, table_name[.*] ...]
      FROM table-references
      [WHERE where_definition]

Поддерживается, начиная с MySQL 4.0.0.

DELETE [LOW_PRIORITY] [QUICK]
      FROM table_name[.*] [, table_name[.*] ...]
      USING table-references
      [WHERE where_definition]

Поддерживается, начиная с MySQL 4.0.2.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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