日期:2014-05-16  浏览次数:21602 次

delete和delete from的区别
当要删除表格中某条记录时,一般可以写作:

delete from table where column = 'xxx'


今天偶然发现,如果不加delete后面不写from,也可以达到同样的效果

请问各位前辈,delete和delete from两种写法,会不会有什么区别呢?
------解决方案--------------------
没区别好像
就像insert和insert into
------解决方案--------------------
有区别.
如果要两表连接进行 delete,则必须要用 from,而且还要加别名.
------解决方案--------------------
比如前面回答的一个例子:
DELETE t FROM Baselnfo t
INNER JOIN QQUser AS QQU ON (DATEDIFF(DAY,QQU.LastLogTime,GETDATE())>1000)

这儿必须加 from.
------解决方案--------------------
你如果只针对表进行删除,则一样.

但是如果需要联合其他表,则需要使用from
例如
delete tb1 from tb1 m where id in (select id from tb2)
------解决方案--------------------
嗯,就是这样
------解决方案--------------------
用from还有一点好处就是可以用别名

delete t from tb t where exists(select 1 from tb where col=t.col and id<t.id)

------解决方案--------------------
引用:
你如果只针对表进行删除,则一样.

但是如果需要联合其他表,则需要使用from
例如
delete tb1 from tb1 m where id in (select id from tb2)


+
------解决方案--------------------
我的习惯是一般都按标准方式来,不省略from之类的东西,写全了肯定不会出错,也不用关心那些区别,工作量也不至于因为多写几个单词增加多少.
------解决方案--------------------
from 可以多表进行连接
------解决方案--------------------
2 3456789楼都有用...
------解决方案--------------------
引用:
我的习惯是一般都按标准方式来,不省略from之类的东西,写全了肯定不会出错,也不用关心那些区别,工作量也不至于因为多写几个单词增加多少.


就是这样干的