Ошибка удаления запроса Sqlite - PullRequest
0 голосов
/ 18 ноября 2011
 delete N.* from Tbl_Nodes N, Data_Tree DT WHERE N.Part = DT.Part

для этой команды я получаю следующую ошибку.

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

Вышеуказанная команда отлично работает для MSAccess.

Есть ли альтернатива использованию ярлыка таблицы в Sqlite?

Ответы [ 3 ]

4 голосов
/ 18 ноября 2011

Оператор DELETE работает с таблицей single и не использует псевдоним таблицы. Поэтому ваше предложение FROM должно иметь вид FROM Tbl_Nodes.

Вы, вероятно, ищете:

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

Обратите внимание, что это удалит все узлы из узлов Tbl_Node, которые имеют соответствующее значение Part в Data_Tree, но не удалит никакие записи из самого Data_Tree.

Хотя SQL несколько отличается у разных поставщиков, в качестве общего принципа было бы ошибкой изучать SQL в MS Access и пытаться применить его к другим продуктам. MS Access имеет некоторые очень нестандартные конструкции.

0 голосов
/ 18 ноября 2011

Я полагаю, что вы пропускаете немного своего SQL-предложения, но оно не работает, если вы просто скажете:

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

Я только что удалил. *

0 голосов
/ 18 ноября 2011

Использование псевдонима для таблицы?

FROM table AS t1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...