Du kan inte ta bort direkt från underfrågan, men du kan fortfarande använda den om du vill, du behöver bara använda den i en JOIN
:
DELETE usrs
FROM usrs
INNER JOIN (
SELECT * FROM usrs WHERE name = 'john'
) t ON usrs.Id = t.Id
Eller så kan du använda IN
:
DELETE usrs
WHERE ID IN (
SELECT ID
FROM usrs
WHERE name = 'John'
)
Med detta sagt, för det här exemplet vet jag inte varför du vill ha en underfråga:
DELETE usrs WHERE name = 'John'
Redigera baserat på kommentarer. För att radera från flera tabeller samtidigt kan du antingen ha flera DELETE
uttalanden, eller så kan du använda något i stil med följande:
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