Не можете директно да изтриете от подзаявката, но все пак можете да я използвате, ако желаете, просто ще трябва да я използвате в JOIN
:
DELETE usrs
FROM usrs
INNER JOIN (
SELECT * FROM usrs WHERE name = 'john'
) t ON usrs.Id = t.Id
Или можете да използвате IN
:
DELETE usrs
WHERE ID IN (
SELECT ID
FROM usrs
WHERE name = 'John'
)
Като се има предвид това, за този пример не знам защо бихте искали подзаявка:
DELETE usrs WHERE name = 'John'
Редактиране на базата на коментари. За да изтриете от няколко таблици едновременно, можете да имате няколко DELETE
изрази или можете да използвате нещо като следното:
delete t1, t2, t3
from (select 'john' as usr) t
left join t1 on t.usr=t1.usr
left join t2 on t.usr=t2.usr
left join t3 on t.usr=t3.usr