2011-11-18 113 views
0
delete N.* from Tbl_Nodes N, Data_Tree DT WHERE N.Part = DT.Part 

此命令我得到以下錯誤。Sqlite刪除查詢錯誤

System.Data.SQLite.SQLiteException: SQLite error near "N": syntax error 

上述命令適用於MSAccess。

在Sqlite中使用表格快捷方式是否有其他選擇?

+0

這是一些非標準的SQL。 WHERE N.Part是什麼意思,以及Tbl_Nodes和Data_Tree如何相關? –

+0

查詢更新... – Sandip

回答

4

DELETE語句在單個表上運行,不使用表別名。因此,您的FROM子句必須爲FROM Tbl_Nodes

你可能在尋找:

delete from Tbl_Nodes WHERE Part IN (SELECT Part FROM Data_Tree) 

注意,這將在Data_Tree有相應的Part值,但不會從Data_Tree刪除任何記錄本身Tbl_Nodes刪除所有節點。

儘管SQL在供應商中有所不同,但作爲一般原則,從MS Access學習SQL並嘗試將其應用於其他產品是一個錯誤。 MS Access具有一些非標準的結構。

+0

+1是迄今爲止唯一的解決方案,甚至有可能是正確的(與語法錯誤相反)SQLite在其大部分語法中更貼近SQL標準比大多數數據庫。 –

0

使用表的別名?

FROM table AS t1 
+0

在「N」附近沒有仍然給出錯誤的SQLite錯誤:語法錯誤 – Sandip

-1

你錯過了一下你的SQL語句有我猜,但它不能正常工作,如果你只是說:

delete N from Tbl_Nodes N, Data_tree DT WHERE...(rest of statement)

我只是刪除了*

+0

它仍然給出錯誤:...錯誤附近「N」:語法錯誤 – Sandip

+0

從我在sqlite網站上發現,似乎在做您可以在其他數據庫產品中進行連接刪除,但不受支持。 Larry Lustig的答案應該適合你。 –

+0

是Larry解決方案適用於我...感謝 – Sandip