How can I delete using INNER JOIN with SQL Server? How can I delete using INNER JOIN with SQL Server? sql-server sql-server

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 ....)