Sie können nicht direkt aus der Unterabfrage löschen, aber Sie können sie trotzdem verwenden, wenn Sie möchten, Sie müssen sie nur in einem JOIN
verwenden :
DELETE usrs
FROM usrs
INNER JOIN (
SELECT * FROM usrs WHERE name = 'john'
) t ON usrs.Id = t.Id
Oder Sie könnten IN
verwenden :
DELETE usrs
WHERE ID IN (
SELECT ID
FROM usrs
WHERE name = 'John'
)
Nachdem dies gesagt wurde, weiß ich für dieses Beispiel nicht, warum Sie eine Unterabfrage benötigen:
DELETE usrs WHERE name = 'John'
Bearbeiten Sie basierend auf Kommentaren. Um aus mehreren Tabellen gleichzeitig zu löschen, können Sie entweder mehrere DELETE
haben Anweisungen, oder Sie können etwas wie das Folgende verwenden:
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