¿Cómo puedo eliminar usando INNER JOIN con SQL Server?
Quiero eliminar el uso INNER JOIN
en SQL Server 2008 .
Pero me sale este error:
Mensaje 156, nivel 15, estado 1, línea 15 Sintaxis
incorrecta cerca de la palabra clave 'INNER'.
Mi código:
DELETE
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06'
Aceptado
Debe especificar de qué tabla está eliminando. Aquí hay una versión con un alias:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Simplemente agregue el nombre de la tabla entre DELETE
y FROM
desde donde desea eliminar registros, porque tenemos que especificar la tabla a eliminar. También elimine la ORDER BY
cláusula porque no hay nada que ordenar al eliminar registros.
Entonces su consulta final debería ser así:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
Es posible que esto te resulte útil.
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
O prueba esto...
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)
Prueba esto:
DELETE FROM WorkRecord2
FROM Employee
Where EmployeeRun=EmployeeNo
And Company = '1'
AND Date = '2013-05-06'