powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает DELETE по работающему SELECT ?
8 сообщений из 8, страница 1 из 1
Почему не работает DELETE по работающему SELECT ?
    #39834790
anstrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такой запрос отрабатывает, выводит кучу записей:

Код: sql
1.
2.
3.
4.
select * FROM va_shipping_types 
	WHERE NOT EXISTS ( 
        SELECT * FROM va_orders  WHERE va_shipping_types.shipping_type_id = va_orders.shipping_type_id
    );



Но при этом:

Код: sql
1.
2.
3.
4.
delete FROM va_shipping_types 
	WHERE NOT EXISTS ( 
        SELECT * FROM va_orders  WHERE va_shipping_types.shipping_type_id = va_orders.shipping_type_id
    );



выдает #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3

пробовал и через WHERE va_shipping_types.shipping_type_id NOT IN - тоже не работает...

Чего то не понимаю в чем дело то может быть ?
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834847
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синтаксис DELETE не предусматривает коррелированных подзапросов. Перепишите на честный LEFT JOIN WHERE IS NULL.
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834863
anstrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, как то боязно delete с join, в каждом втором сообщении в гугле предупреждают что в этом случае удаляются записи в обоих таблицах объединения....
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834891
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anstremкак то боязно delete с join, в каждом втором сообщении в гугле предупреждают что в этом случае удаляются записи в обоих таблицах объединения....То есть половина постящих - клинические идиоты... ну что ж, 50% либо умных, либо осторожных - это хороший процент.

MariaDB: DELETE Syntax
Код: sql
1.
2.
3.
4.
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...    
    FROM table_references
    [WHERE where_condition]


Удаление будет выполнено только из тех таблиц, которые перечислены в выделенной строке.
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834895
anstrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сработало

Код: sql
1.
2.
3.
4.
DELETE va_shipping_types 
FROM va_shipping_types LEFT JOIN va_orders
ON va_shipping_types.shipping_type_id = va_orders.shipping_type_id
WHERE va_orders.shipping_type_id IS NULL

;


Но не понял почему в первой строке этого DELETE надо указывать таблицу, сначала пробовал вот так, но так не работает:

Код: sql
1.
2.
3.
DELETE FROM va_shipping_types LEFT JOIN va_orders
ON va_shipping_types.shipping_type_id = va_orders.shipping_type_id
WHERE va_orders.shipping_type_id IS NULL
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834896
anstrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, понял теперь почему :) видимо к первым 50% отношусь :)
но в mysql походу защита от дураков работает и потому такие клинические запросы слава богу не проходят
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834898
anstrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь!
...
Рейтинг: 0 / 0
Почему не работает DELETE по работающему SELECT ?
    #39834899
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anstremпонял теперь почему :) видимо к первым 50% отношусь :)Уже нет
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает DELETE по работающему SELECT ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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