SQLITE请求语法错误

时间:2017-09-17 22:31:56

标签: mysql postgresql sqlite

我有一个请求的问题,它与pgsql和mysql一起工作正常,但是对于sqlite,似乎我错过了一些东西

这是请求:

select * from mesure_insitu 
where (id_formulaire, gid) IN (
  select distinct id_formulaire, max(gid) as gid 
  from mesure_insitu 
  where id_dispo_comp_ouvr = 1 
  GROUP BY id_formulaire 
  ORDER BY id_formulaire ASC
)

下面的子查询工作正常:

select distinct id_formulaire, max(gid) as gid 
from mesure_insitu 
where id_dispo_comp_ouvr = 1 
GROUP BY id_formulaire 
ORDER BY id_formulaire ASC)

我认为问题在于具有两个值(id_formulaire, gid)的条件,就像sqlite不能使用具有两个值的条件一样。

我将感谢任何类型的帮助。

1 个答案:

答案 0 :(得分:2)

要使此查询生效,请将SQLite更新为newer version

如果你不能这样做,你必须使用连接:

SELECT *
FROM mesure_insitu
JOIN (SELECT id_formulaire, max(gid) AS gid 
      FROM mesure_insitu 
      WHERE id_dispo_comp_ouvr = 1 
      GROUP BY id_formulaire)
USING (id_formulaire, gid);

(DISTINCT和ORDER BY在这个子查询中是多余的。)