Você não pode excluir diretamente da subconsulta, mas ainda pode usá-la se quiser, só precisará usá-la em um
JOIN
:DELETE usrs
FROM usrs
INNER JOIN (
SELECT * FROM usrs WHERE name = 'john'
) t ON usrs.Id = t.Id
Ou você pode usar
IN
:DELETE usrs
WHERE ID IN (
SELECT ID
FROM usrs
WHERE name = 'John'
)
Com isso dito, para este exemplo, não sei por que você deseja uma subconsulta:
DELETE usrs WHERE name = 'John'
Editar base em comentários. Para excluir de várias tabelas ao mesmo tempo, você pode ter vários
DELETE
declarações, ou você pode usar algo como o seguinte: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