2016-06-21 4 views
-2

이 쿼리에 도움이 필요합니다.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 

장고에서이 쿼리를 수행해야합니다. SQLite3에서 실행되는 로컬 환경에서 사용할 수 있지만 프로덕션 환경으로 푸시하면 Postgres가 있기 때문에 실패합니다.

저를 도울 수있는 사람이 있습니까?

답변

0

이 SQL을 Postgres로 변환하려면 group_concatstring_agg(s.carrera_id, ',')으로 변경하십시오. 하지만 더 이상 SQLite에서는 작동하지 않습니다. 개발 및 프로덕션에서 동일한 데이터베이스를 사용하면 문제가 줄어들 것입니다.

또한 각 그룹의 s.nombre을 알고 싶다면 GROUP BY h.habilidad_id, s.nombre이 필요하다고 생각합니다.

또한 보안 위험성이 있으므로 사용자 제공 값을 %s으로 보간해서는 안됩니다.

관련 문제