我正在尝试沿着以下几行为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
我不太确定我做错了什么。任何解释都将不胜感激。
答案 0 :(得分:4)
您的SELECT列表中的项目周围不应有括号。 SELECT a, b, c FROM d WHERE e = 1
。
答案 1 :(得分:1)
正如其他人所说,从SELECT
子句中的字段中删除括号。有更多关于SQL内部工作原理的人可以随意纠正/详细说明,但我认为查询解析器将括号表达式视为要评估的内容。请注意,例如,WHERE
子句的括号,其值为布尔值。除了语法错误之外,列名本身不会评估任何内容。另一方面,如果在SELECT
子句中的括号内放置了子SELECT
或其他可评估的表达式,它将解析它。