如何使用INER JOIN与SQL Server删除?

本文翻译自:How to Delete using INNER JOIN with SQL Server?

I want to delete using INNER JOIN in SQL Server 2008 . 我想在SQL Server 2008中使用INNER JOIN删除。

But I get this error: 但我得到这个错误:

Msg 156, Level 15, State 1, Line 15 消息156,第15级,状态1,第15行
Incorrect syntax near the keyword 'INNER'. 关键字“INNER”附近的语法不正确。

My code: 我的代码:

DELETE FROM WorkRecord2 
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'

#1楼

参考:https://stackoom.com/question/179Yh/如何使用INER-JOIN与SQL-Server删除


#2楼

You need to specify what table you are deleting from, here is a version with an alias: 您需要指定要删除的表,这是带别名的版本:

DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
  ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'

#3楼

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. 只需在DELETEFROM之间添加要删除记录的表的名称,因为我们必须指定要删除的表。 Also remove ORDER BY clause because there is nothing to order while deleting records. 同时删除ORDER BY子句,因为删除记录时无需订购。

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';

#4楼

Possible this be helpful for you - 这可能对你有所帮助 -

DELETE FROM dbo.WorkRecord2 
WHERE EmployeeRun IN (
    SELECT e.EmployeeNo
    FROM dbo.Employee e
    WHERE ...
)

Or try this - 或试试这个 -

DELETE FROM dbo.WorkRecord2 
WHERE EXISTS(
    SELECT 1
    FROM dbo.Employee e
    WHERE EmployeeRun = e.EmployeeNo
        AND ....
)

#5楼

Try this: 试试这个:

DELETE FROM WorkRecord2 
       FROM Employee 
Where EmployeeRun=EmployeeNo
      And Company = '1' 
      AND Date = '2013-05-06'

#6楼

Try this query : 试试这个查询:

DELETE WorkRecord2, Employee 
FROM WorkRecord2 
INNER JOIN Employee ON (tbl_name.EmployeeRun=tbl_name.EmployeeNo)
WHERE tbl_name.Company = '1' 
AND tbl_name.Date = '2013-05-06';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值