我想使用mysql后端在django中做一个简单的GROUP BY
雕像(它不支持django ORM中列上的GROUP BY)。我通常使用以下方法来执行此操作:
Cue.objects.raw("SELECT * FROM main_cue GROUP BY group_id")
有没有办法在不使用.raw()
的情况下执行此操作?相当于:
Cue.objects.values('*').distinct('group_id')
我在这里链接过滤器所以我需要将它保留在ORM中。
答案 0 :(得分:0)
这是我迄今为止最好的,但它非常不洁净:
cues = self._get_assignable_cues(keyword)
group_ids = tuple(cues.values_list('group_id', flat=True).distinct())
cues_per_group = Cue.objects.raw(
'SELECT * FROM main_cue WHERE group_id IN %s GROUP BY group_id', (group_ids,)
)