Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL DELETE com JOIN outra tabela para a condição WHERE


Devido aos problemas de implementação de bloqueio, MySQL não permite referenciar a tabela afetada com DELETE ou UPDATE .

Você precisa fazer um JOIN aqui em vez disso:
DELETE  gc.*
FROM    guide_category AS gc 
LEFT JOIN
        guide AS g 
ON      g.id_guide = gc.id_guide
WHERE   g.title IS NULL

ou apenas use um NOT IN :
DELETE  
FROM    guide_category AS gc 
WHERE   id_guide NOT IN
        (
        SELECT  id_guide
        FROM    guide
        )