Имя: Пароль:
IT
Веб-мастеринг
Помогите пожалуйста с MySQL - DELETE c вложенным SELECT
0 sysadminlk
 
12.05.20
16:37
SELECT `pl_descr` FROM `link_pricelist` AS `p` WHERE `pl_id` = '19975230'

Вопрос
Как мне удалить одним запросом все строки у которых `pl_descr` равен тому который из селекта получили по `pl_id` = '19975230'
1 ДенисЧ
 
12.05.20
16:39
delete ... where pl_id in (select pl_id where...)
2 trad
 
13.05.20
11:24
(1) только так не pl_id in pl_id, а pl_descr in pl_descr

delete link_pricelist
where pl_descr in (SELECT pl_descr FROM link_pricelist WHERE pl_id = '19975230')
3 ДенисЧ
 
13.05.20
11:29
(2) Ну, мне было лень поля расписывать. Я ж не сапер, чтобы в таких сокращениях разбираться.
4 sysadminlk
 
13.05.20
16:12
delete from link_pricelist
where pl_descr in (SELECT pl_descr FROM link_pricelist WHERE pl_id = '19975230')


Ошибка
#1093 - You can't specify target table 'link_pricelist' for update in FROM clause
5 Вафель
 
13.05.20
16:14
6 sysadminlk
 
13.05.20
16:20
DELETE FROM `link_pricelist` WHERE pl_descr = ( SELECT a.pl_descr
FROM (
SELECT pl_descr
FROM `link_pricelist`
WHERE `pl_id` = '19975230'
) AS `a` )

спасибо. вот так отработало
7 Гений 1С
 
гуру
13.05.20
16:44
(0) Ты окрываешь для себя SQL, прям как я: https://geniy1s.ru/prokachalsya-tut-v-mysql/
8 Serginio1
 
13.05.20
18:59
9 rphosts
 
13.05.20
19:11
(5) прикольный обход проблемы двойным вложением!