Du kan ikke slette direkte fra underforespørgslen, men du kan stadig bruge den, hvis du vil, du skal bare bruge den i en JOIN
:
DELETE usrs
FROM usrs
INNER JOIN (
SELECT * FROM usrs WHERE name = 'john'
) t ON usrs.Id = t.Id
Eller du kan bruge IN
:
DELETE usrs
WHERE ID IN (
SELECT ID
FROM usrs
WHERE name = 'John'
)
Med dette sagt, for dette eksempel ved jeg ikke, hvorfor du vil have en underforespørgsel:
DELETE usrs WHERE name = 'John'
Rediger base på kommentarer. For at slette fra flere tabeller på samme tid kan du enten have flere DELETE
udsagn, eller du kan bruge noget i stil med følgende:
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