我有一个请求的问题,它与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不能使用具有两个值的条件一样。
我将感谢任何类型的帮助。
答案 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在这个子查询中是多余的。)