powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / DELETE FROM с подзапросом
9 сообщений из 9, страница 1 из 1
DELETE FROM с подзапросом
    #38813627
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
delete from `k-t_s` where `k-t_s`.`id_s` in
(
SELECT `k-t_s`.`id_s`
FROM `k-t_s` LEFT JOIN `k-ts` ON `k-t_s`.`id_s`=`k-ts`.`ids`
WHERE `k-ts`.`ids` IS NULL
)


Выдаёт ошибку: #1093 - You can't specify target table 'k-t_s' for update in FROM clause

Что не так в синтаксисе?
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813631
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перепишите запрос через NOT EXISTS
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813636
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему мой вариант не выполняется?
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813642
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.5/en/delete.html Currently, you cannot delete from a table and select from the same table in a subquery.
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813644
ded-mazay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а че еще проще не сделать???
delete from `k-t_s` where `k-t_s`.`id_s` not in
(
SELECT `k-ts`.`ids`
FROM `k-ts`
WHERE `k-ts`.`ids` = `k-t_s`.`id_s`
)
или еще проще
delete from `k-t_s` where `k-t_s`.`id_s` is null
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813647
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ded-mazayа че еще проще не сделать???
delete from `k-t_s` where `k-t_s`.`id_s` not in
(
SELECT `k-ts`.`ids`
FROM `k-ts`
WHERE `k-ts`.`ids` = `k-t_s`.`id_s`
)
или еще проще
delete from `k-t_s` where `k-t_s`.`id_s` is nullВо-первых, это логически не эквивалентно. Обратите внимание на слово LEFT в исходном запросе.
Во-вторых, 16887411
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813656
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftПерепишите запрос через NOT EXISTS
не могу) не соображаю… Покажите, пжл
Пробовал пока так:
Код: sql
1.
2.
3.
delete from
`k-t_s` LEFT JOIN `k-ts` ON `k-t_s`.`id_s`=`k-ts`.`ids`
WHERE `k-ts`.`ids` IS NULL


Но тоже ерунда…
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813665
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
delete `k-t_s`
from `k-t_s` LEFT JOIN `k-ts` ON `k-t_s`.`id_s`=`k-ts`.`ids`
WHERE `k-ts`.`ids` IS NULL

Код: sql
1.
2.
DELETE FROM `k-t_s`
WHERE NOT EXISTS (SELECT NULL FROM `k-ts` WHERE `k-t_s`.`id_s`=`k-ts`.`ids`)
...
Рейтинг: 0 / 0
DELETE FROM с подзапросом
    #38813671
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, полегчало. А то делит никогда не использовал и затупил с его логикой и правилами)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / DELETE FROM с подзапросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]