SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.06.2013 13:56:28

igrok
Участник
Зарегистрирован: 28.01.2012
Сообщений: 9

SELECT и DELETE

Здравствуйте!

Есть две таблицы sys_pages (основная) и таблица groups_new (источник обновлений для sys_pages).
Необходимо удалить в sys_pages строки, которых нет в groups_new (синхронизируются таблицы по полю kod).
На начало запроса в таблице sys_pages в наличии 311 записей.

Хочу заранее посмотреть, сколько и какие записи подлежат удалению в sys_pages:

SELECT sys_pages.id_main FROM sys_pages LEFT JOIN groups_new ON sys_pages.kod = groups_new.kod WHERE (sys_pages.import='yes') and (groups_new.kod IS NULL)


В конкретном случае groups_new и sys_pages полностью соответствуют друг другу (SELECT, естесственно, пустой), поэтому удалять в sys_pages ничего не надо.
Если запустить по этим данным запрос на удаление, он тоже ничего удалять не должен.
Однако, запускаю запрос:

DELETE sys_pages FROM sys_pages LEFT JOIN groups_new ON sys_pages.kod = groups_new.kod WHERE (sys_pages.import='yes') and (groups_new.kod IS NULL)


Начиная со слова FROM оба запроса полностью совпадают.
Но в итоге из 311 записей в sys_pages остается 205 !!!

Подскажите, пожалуйста: что за чудо такое? В чем я ошибся?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson