我需要一些关于此查询的帮助。
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 :(得分:1)
要将此SQL转换为Postgres,请将group_concat
更改为string_agg(s.carrera_id, ',')
。但随后它又不再适用于SQLite。如果在开发和生产中使用相同的数据库,则可能会遭受更少的损失。
如果您想了解每个小组的GROUP BY h.habilidad_id, s.nombre
,我认为您需要s.nombre
。
此外,您应避免使用%s
插入用户提供的值,因为这会带来安全风险。