2016-06-21 132 views
-2

我需要这个查询的一些帮助。将postgres查询转换为django查询

SELECT s.nombre as 'habilidad', 
     GROUP_CONCAT(a.carrera_id) 
FROM perfiles_alumno a, 
     perfiles_alumno_habilidades h, 
     perfiles_universidad u, 
     segmentacion_habilidad s 
WHERE u.user_id = %s 
AND  a.universidad_id = u.id 
AND  a.id = h.alumno_id 
AND  s.id = h.habilidad_id 
GROUP BY h.habilidad_id 
ORDER BY a.carrera_id 

我需要在Django中执行此查询。我可以在SQLite3中运行的本地环境中使用它,但是当我推到生产环境时,它失败了,因为我有Postgres。

有没有人可以帮助我?

回答

0

要将此SQL转换为Postgres,请将group_concat更改为string_agg(s.carrera_id, ',')。但是,它不再适用于SQLite。如果您在开发和生产中使用相同的数据库,您可能会遭受更少的损失。如果你想知道每个组的s.nombre,我想你需要GROUP BY h.habilidad_id, s.nombre

此外,您应该避免使用用户提供的值插入%s,因为这是安全风险。