爲什麼刪除語句的侷限性超出了他們的選擇對象?複雜刪除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