How can I delete using INNER JOIN with SQL Server?
You need to specify what table you are deleting from. Here is a version with an alias:
DELETE wFROM WorkRecord2 wINNER JOIN Employee e ON EmployeeRun=EmployeeNoWHERE Company = '1' AND Date = '2013-05-06'
Just add the name of the table between DELETE
and FROM
from where you want to delete records, because we have to specify the table to delete. Also remove the ORDER BY
clause because there is nothing to order while deleting records.
So your final query should be like this:
DELETE WorkRecord2 FROM WorkRecord2 INNER JOIN Employee ON EmployeeRun=EmployeeNo WHERE Company = '1' AND Date = '2013-05-06';
It is possible this will be helpful for you -
DELETE FROM dbo.WorkRecord2WHERE EmployeeRun IN ( SELECT e.EmployeeNo FROM dbo.Employee e WHERE ...)
Or try this -
DELETE FROM dbo.WorkRecord2WHERE EXISTS( SELECT 1 FROM dbo.Employee e WHERE EmployeeRun = e.EmployeeNo AND ....)