/ / Error de sintaxis en la eliminación de varias tablas - mysql, sql

Error de sintaxis en la eliminación de varias tablas - mysql, sql

Cuando corro esto:

DELETE FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000))

... me sale un error de sintaxis:

# 1064 - Tienes un error en tu sintaxis SQL;verifique el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar near "AS fo LEFT OUTER JOIN files AS fi ON fo.folderId = fi.folderId DONDE fifold "en la línea 1

El código se basa en un SELECT Consulta que devuelve las filas previstas. ¿Cuál es la razón del mensaje de error?

Respuestas

1 para la respuesta № 1

No es una sorpresa que "no funcione". Cuando ejecuto tu código me sale un error de sintaxis:

Error de SQL (1064): Tienes un error en tu sintaxis SQL; comprobar el Manual que corresponde a su versión de servidor MySQL para el derecho. sintaxis para usar cerca de "AS fo LEFT OUTER JOIN files AS fi ON fo.folderId = fi.folderId WHERE fi.fold "en la línea 1

los sintaxis correcta es:

DELETE fo -- Note I"ve added table name
FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000));

1 para la respuesta № 2
DELETE
FROM folders fo
WHERE NOT EXISTS (SELECT 1
FROM files fi
WHERE fi.folderId = fo.folderId)
AND fo.folderId IN (63, 1000)