Здравствуйте!
Есть две таблицы 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 !!!
Подскажите, пожалуйста: что за чудо такое? В чем я ошибся?