sql >> Database >  >> RDS >> Mysql

MySQL - Hoe te verwijderen uit een tabel wanneer geneste select die tabel gebruikt?

Je krijgt waarschijnlijk deze foutmelding:

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

U zou dit moeten kunnen doen met MySQL's multiple-table DELETE syntaxis in plaats daarvan:

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

De bovenstaande query zou moeten werken, maar als algemene regel raad ik aan om in plaats daarvan de ANSI JOIN-syntaxis te gebruiken:

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. Hoe maak je een extensie niet verplaatsbaar?

  2. Matrixvariabele in mysql

  3. Fatale fout:oproep naar ongedefinieerde functie mysql_connect_errno() in

  4. MySQL – Fix – Error – Uw wachtwoord voldoet niet aan de huidige beleidsvereisten