Forum Webscript.Ru

Общие => Базы данных => Тема начата: Алексей от 09 Апреля 2005, 15:48:18

Название: Помогите с запросом на удаление
Отправлено: Алексей от 09 Апреля 2005, 15:48:18
Привет!
Я что-то не пойму - в мускуле нельзя удалить записи из 2 таблиц чтоли?

Нужно удалить записи из 2 таблиц, где дата в NULL и не позже 2005-03-01.

Делаю так:
DELETE  FROM user_main,  user_data
WHERE user_main.user_visiting IS  NULL
AND user_main.user_id = user_data.user_id
AND user_main.user_registration <  \'2005-03-01\'
 

но это не работает :((
Название: Помогите с запросом на удаление
Отправлено: Макс от 09 Апреля 2005, 19:17:26
какая версия mysql ?
Название: Помогите с запросом на удаление
Отправлено: Алексей от 10 Апреля 2005, 10:12:42
Макс
ээ, а как посмотреть? вроде бы 3.23.49
Название: Помогите с запросом на удаление
Отправлено: commander от 11 Апреля 2005, 09:34:36
Цитировать
ээ, а как посмотреть?  

 SELECT VERSION();
Название: Помогите с запросом на удаление
Отправлено: Алексей от 11 Апреля 2005, 11:07:08
commander
спасибо.

3.23.56-max-debug
Название: Помогите с запросом на удаление
Отправлено: Алексей от 11 Апреля 2005, 16:09:17
и што??
Название: Помогите с запросом на удаление
Отправлено: commander от 11 Апреля 2005, 16:59:58
Алексей
хмм... я чушь написал:
http://www.mysql.ru/docs/man/DELETE.html
Название: Помогите с запросом на удаление
Отправлено: for_i_0 от 11 Апреля 2005, 17:19:46
Цитировать

Цитата из выше изложенной ссылки:
Выражение ORDER BY и использование нескольких таблиц в команде DELETE поддерживается в MySQL 4.0.


commander
похоже все таки не чужь.
Название: Помогите с запросом на удаление
Отправлено: commander от 11 Апреля 2005, 18:23:58
for_i_0
обнову собрать не большая проблемма... :)

Алексей
либо писать функцию, либо переложить на приложение... либо... (самое лучшее) обновить версию...
Название: Помогите с запросом на удаление
Отправлено: Алексей от 12 Апреля 2005, 11:10:36
ребят, в версии 4.0.15 это всё равно не работает:

Ошибка

SQL-запрос :

DELETE FROM user_main, user_data
WHERE user_main.user_visiting IS NULL AND user_main.user_id = user_data.user_id AND user_main.user_registration < \'2005-03-01\'

Ответ MySQL:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near \'WHERE user_main.user_visiting IS  NULL  AND use\'
Название: Помогите с запросом на удаление
Отправлено: for_i_0 от 12 Апреля 2005, 12:21:37
Алексей
Цитировать
цитата из мануала.
MySQL 4.1.1 and up can additionally optimize the combination col_name = expr AND col_name IS NULL, a form that is common in resolved subqueries.
Название: Помогите с запросом на удаление
Отправлено: Алексей от 12 Апреля 2005, 14:54:00
и?....
Название: Помогите с запросом на удаление
Отправлено: for_i_0 от 12 Апреля 2005, 17:32:30
DELETE user_main, user_data FROM user_main, user_data WHERE user_main.user_visiting IS NULL AND user_main.user_registration < \'2005-03-01\' AND user_main.user_id = user_data.user_id;
Должно работать в версии: MySQL v4.0
Название: Помогите с запросом на удаление
Отправлено: Алексей от 12 Апреля 2005, 18:58:06
for_i_0
спасибо, сработало!