2010-12-04 12 views
0

私は唯一のタスクフィールドからこれらの3つのフィールドを必要とする次の行に沿ってsqliteのためのSQL文を記述しようとしている:私は含めてに興味がないんだ誰かがこの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 *返すフィールドが、上記のやり方と同じようにしようとすると、このあいまいなエラーメッセージが表示されます。

SQL error: near ",": syntax error 

私が間違っていることはよく分かりません。説明をいただければ幸いです。

+0

'(tasks.id、tasks.title、tasks.comment)'からかっこを削除しますか? – Ken

答えて

1

他の人の言われているように、SELECT句のフィールドから括弧を削除します。 SQLの内部の動作についてもっと知っている人は、修正/精巧に自由に感じることができますが、クエリパーサーは、かっこ式を評価するものとして扱うと思います。たとえば、WHERE句の前後の括弧はブール値に評価されます。列名自体は構文エラーではありません。一方、SELECT句の小括弧内に小文字のSELECTまたは評価可能な式を配置した場合、それは解析されます。

4

SELECTリストの項目を囲む括弧は使用しないでください。 SELECT a, b, c FROM d WHERE e = 1

関連する問題