2016-06-21 10 views
-2

Ich brauche etwas Hilfe bei dieser Abfrage.konvertieren Postgres Abfrage zu Django Abfrage

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 

Ich muss diese Abfrage in Django tun. Ich kann das in meiner lokalen Umgebung verwenden, die in SQLite3 läuft, aber wenn ich zur Produktion dränge, scheitert es, weil ich Postgres habe.

Gibt es jemanden, der mir helfen kann?

Antwort

0

Um diese SQL in Postgres zu konvertieren, ändern Sie group_concat zu string_agg(s.carrera_id, ','). Aber dann wird es auf SQLite nicht mehr funktionieren. Sie werden wahrscheinlich weniger leiden, wenn Sie dieselbe Datenbank sowohl in der Entwicklung als auch in der Produktion verwenden.

Auch ich denke, Sie müssen GROUP BY h.habilidad_id, s.nombre, wenn Sie die s.nombre jeder Gruppe wissen wollen.

Auch sollten Sie die Interpolation von benutzerdefinierten Werten mit %s vermeiden, da dies ein Sicherheitsrisiko darstellt.