2010-12-04 14 views
0

Je suis en train d'écrire une instruction SQL pour sqlite le long des lignes suivantes, où je ne besoin de ces trois champs du champ Tâches:Quelqu'un pourrait-il expliquer cette erreur de syntaxe SQL?

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 * renvoie les champs que je ne suis pas intéressé à inclure, mais Je viens d'obtenir ce vague message d'erreur lorsque je tente de le faire comme je l'ai fait ci-dessus:

SQL error: near ",": syntax error 

Je ne suis pas tout à fait sûr de ce que je fais mal. Toutes les explications seraient appréciées.

+0

Supprimer les parenthèses de '(tasks.id, tasks.title, tasks.comment)'? – Ken

Répondre

1

Comme d'autres l'ont dit, supprimez la parenthèse des champs de la clause SELECT. Quelqu'un qui en sait plus sur les fonctionnements internes de SQL peut se sentir libre de corriger/élaborer, mais je pense que l'analyseur de requêtes considère les expressions entre parenthèses comme quelque chose à évaluer. Notez, par exemple, les parenthèses autour de votre clause WHERE, qui évalue à un booléen. Les noms de colonne par eux-mêmes n'évaluent rien d'autre qu'une erreur de syntaxe. Si, d'autre part, vous avez placé une sous-SELECT ou une autre expression évaluable entre parenthèses dans votre clause SELECT, il l'analysera.

4

Vous ne devez pas avoir de parenthèses autour des éléments de votre liste SELECT. SELECT a, b, c FROM d WHERE e = 1.