Может ли кто-нибудь объяснить эту ошибку синтаксиса SQL? - PullRequest
0 голосов
/ 05 декабря 2010

Я пытаюсь написать SQL-оператор для sqlite в следующих строках, где мне нужны только эти три поля из поля задач:

select (tasks.id, tasks.title, tasks.comment) from 
tasks inner join contexts_tasks on tasks.id = contexts_tasks.task_id 
where (contexts_tasks.context_id = 0);

select * возвращает поля, которые мне не интересны, но я получаю это смутное сообщение об ошибке, когда пытаюсь сделать это так, как я делал выше:

SQL error: near ",": syntax error

Я не совсем уверен, что я делаю не так. Будем благодарны за любые объяснения.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2010

У вас не должно быть скобок вокруг элементов в вашем списке SELECT.SELECT a, b, c FROM d WHERE e = 1.

1 голос
/ 05 декабря 2010

Как уже говорили другие, удалите скобки из полей в предложении SELECT.Кто-то, кто знает больше о внутренней работе SQL, может не стесняться исправлять / уточнять, но я думаю, что анализатор запросов рассматривает выражения в скобках как нечто для оценки.Обратите внимание, например, на круглые скобки вокруг вашего предложения WHERE, которое оценивается как логическое значение.Имена столбцов сами по себе ничего не оценивают, кроме синтаксической ошибки.Если, с другой стороны, вы поместили в скобки выражение <1004 *, расположенное ниже <code>SELECT или иным способом, которое можно вычислить иным образом, оно проанализирует его.

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