sql >> Databasteknik >  >> RDS >> Mysql

SQL DELETE med JOIN en annan tabell för WHERE-villkor

På grund av låsningsimplementeringsproblem, MySQL tillåter inte hänvisning till den berörda tabellen med DELETE eller UPDATE .

Du måste skapa en JOIN här istället:

DELETE  gc.*
FROM    guide_category AS gc 
LEFT JOIN
        guide AS g 
ON      g.id_guide = gc.id_guide
WHERE   g.title IS NULL

eller använd bara en NOT IN :

DELETE  
FROM    guide_category AS gc 
WHERE   id_guide NOT IN
        (
        SELECT  id_guide
        FROM    guide
        )


  1. Bästa databasprogramvara för utvecklare (2022-utgåvan)

  2. MYSQL sum() för distinkta rader

  3. PHP Fatalt fel:Klass 'PDO' hittades inte

  4. Lägg till främmande nyckel till befintlig tabell