sql >> Database >  >> RDS >> Mysql

Verwijderen, bijwerken met afgeleide tabellen?

U kunt de subquery niet rechtstreeks verwijderen, maar u kunt deze nog steeds gebruiken als u dat wilt. U hoeft deze alleen te gebruiken in een JOIN :

DELETE usrs
FROM usrs
    INNER JOIN (
        SELECT * FROM usrs WHERE name = 'john'
    ) t ON usrs.Id = t.Id

Of u kunt IN . gebruiken :

DELETE usrs
WHERE ID IN (
   SELECT ID
   FROM usrs
   WHERE name = 'John'
)

Met dit gezegd, voor dit voorbeeld, weet ik niet waarom je een subquery zou willen:

DELETE usrs WHERE name = 'John'

Bewerken op basis van opmerkingen. Om uit meerdere tabellen tegelijk te verwijderen, kunt u ofwel meerdere DELETE . hebben verklaringen, of u kunt iets als het volgende gebruiken:

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


  1. MySQL char vs. int

  2. SQL Server Failover Cluster Installatie -1

  3. mysql ... waar de clausule dubbelzinnig is

  4. MySQL-triggers gebruiken