sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Hvordan sletter man fra tabel, når indlejret udvalg bruger den tabel?

Du får sandsynligvis denne fejlmeddelelse:

ERROR 1093 (HY000): You can't specify target table 'table_1' for update in FROM clause.

Du burde være i stand til at gøre dette ved at bruge MySQL's multiple-table SLET syntaks i stedet:

DELETE table_1.*
FROM   table_1,
       table_2,
       table_3
WHERE  table_1.id = table_2.table_1_id
AND    table_2.id = table_3.table_2_id
AND    table_3.id = 5

Ovenstående forespørgsel burde virke, men som en generel regel vil jeg anbefale at bruge ANSI JOIN syntaks i stedet:

DELETE table_1.*
FROM   table_1
INNER JOIN table_2 on table_2.table_1_id = table_1.id
INNER JOIN table_3 on table_3.table_2_id = table_2.id
WHERE table_3.id = 5



  1. Sådan bruges egenskaben IDENTITY() i SQL Server

  2. Hvordan kan jeg kontrollere, om der findes en MySQL-tabel med PHP?

  3. hvordan opretter jeg en unik php-side for hver række i en mysql-database

  4. Hvordan forskønner man det output, der kommer fra SELECT-forespørgslen i kommandoprompten?