为什么删除语句的局限性超出了他们的选择对象?复杂删除SQL语句
我没有被卡住,因为问题很容易解决,但我宁愿修复我的理解,而不是继续使用解决方法。
举个例子,我有一个带有字段V1和V2的无向边缘列表。不幸的是,当创建表时,我引入了重复项(即V1→V2和V2→V1)。为了识别复本,我跑查询:
SELECT t1.V1, t1.V2
FROM table t1
WHERE t1.V1 > t1.V2
and EXISTS (
SELECT *
FROM table t2
WHERE t2.V1 = t1.V2
and t2.V2 = t1.V1)
,因为这回一组漂亮的从表中的行,我想我应该能够替换删除选择线并重新运行相同的查询。但是,Sql服务器变得疯狂,而是给我写了红色字母。关于语法和调整之后,有关绑定多部分标识符的信息。
我设法将select存储在一个表变量中,并完成删除 - 这没问题,但是我的原始方法出了什么问题,我可以用单个SQL语句来完成吗?
如果你到底什么报道的“红字”说,这可能会有帮助。而且,也正是你的DELETE语句的样子(它是“DELETE t1”后跟FROM ...?)。 – GilM 2013-04-29 18:06:43
您的表格实际上称为“表格”?你会给你的孩子命名为“孩子”吗? – wildplasser 2013-04-29 18:20:14