【发布时间】:2017-11-07 14:44:06
【问题描述】:
您好,我正在处理一个非常简单的查询,这个查询假设删除我表上的所有空行,我知道这是我的查询
DELETE FROM myTable WHERE myID IS NULL;
但是我想在存储过程中包含这个查询,这次我想在一个查询中从两个表中删除所有空值,这是我的进步:
DELETE tblOg.myID, TblOrd.myID
FROM myTbl tblOg,
myTblOrdered TblOrd
WHERE myTbl.myID IS NULL AND myTblOrdered.myID IS NULL;
但我得到了这个错误
消息 102,级别 15,状态 1,第 7 行 'TblOrd' 附近的语法不正确。
不确定我是否应该使用INNER JOIN 或者我应该把它放在哪里。
提前致谢。
【问题讨论】:
-
你用的是什么关系型数据库?
-
使用
DELETE语句只能从一张表中删除。 -
@Lamak Microsoft SQL Server
-
DELETE 语句中的 FROM 关键字经常以令人困惑的方式使用。我们可以说
DELETE myTable WHERE myID IS NULL(without FROM) 这与您的第一个查询完全相同。然后,您可以在 WHERE 之前添加 FROM 以指定其他表连接,以帮助识别要从第一个表中删除的行。我发现这是一个愚蠢的语言问题,在不需要时允许使用 FROM - IMO 应该只允许在 DELETE 中指定 JOIN,但事实并非如此。
标签: sql sql-server tsql sql-delete