有人可以解释这个SQL语法错误吗?

时间:2010-12-04 21:24:46

标签: sql sqlite

我正在尝试沿着以下几行为sqlite编写一个sql语句,其中我只需要来自tasks字段的那三个字段:

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 个答案:

答案 0 :(得分:4)

您的SELECT列表中的项目周围不应有括号。 SELECT a, b, c FROM d WHERE e = 1

答案 1 :(得分:1)

正如其他人所说,从SELECT子句中的字段中删除括号。有更多关于SQL内部工作原理的人可以随意纠正/详细说明,但我认为查询解析器将括号表达式视为要评估的内容。请注意,例如,WHERE子句的括号,其值为布尔值。除了语法错误之外,列名本身不会评估任何内容。另一方面,如果在SELECT子句中的括号内放置了子SELECT或其他可评估的表达式,它将解析它。