我想INNER JOIN在SQL Server 2008中删除使用.
但我得到这个错误:
消息156,级别15,状态1,行15
关键字"INNER"附近的语法不正确.
我的代码:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Run Code Online (Sandbox Code Playgroud) 哪个查询更快?
不存在:
SELECT ProductID, ProductName
FROM Northwind..Products p
WHERE NOT EXISTS (
SELECT 1
FROM Northwind..[Order Details] od
WHERE p.ProductId = od.ProductId)
Run Code Online (Sandbox Code Playgroud)
或者不是:
SELECT ProductID, ProductName
FROM Northwind..Products p
WHERE p.ProductID NOT IN (
SELECT ProductID
FROM Northwind..[Order Details])
Run Code Online (Sandbox Code Playgroud)
查询执行计划表明他们都做同样的事情.如果是这种情况,这是推荐的形式?
这基于NorthWind数据库.
[编辑]
刚刚找到这篇有用的文章:http: //weblogs.sqlteam.com/mladenp/archive/2007/05/18/60210.aspx
我想我会坚持使用NOT EXISTS.