首页 > 其他 > 详细

解决Django中 distinct 只对一个字段有用,同时查出其他字段

时间:2021-04-20 15:54:42      阅读:23      评论:0      收藏:0      [点我收藏+]

需求:

  需要从如下表结构中取出不重复的name数据,还有对应id,

id name
1 a
2 b
3 a
4 c

 

 

 

 

 

 

我期望得到的查询结果是:

id name
1 a
2 b
4 c

 

 

 

 

 

解决:

我试着这么写:

queryset = User.objects.values("id", "name").order_by("name").distinct()

结果依然是没有去重name字段的原始数据

去掉id改为:

queryset = User.objects.values("name").order_by("name").distinct()

发现查询结果为:

name
a
b
c

 

 

 

 

 

原来distinct关键字去重查询只能查出一列数据,即name,

但是只查出name没有意义,还需要查出对应的id

所以换为执行原生SQL查询

queryset = User.objects.raw("select id,name from user group by name;")

对应查询结果正确。

解决Django中 distinct 只对一个字段有用,同时查出其他字段

原文:https://www.cnblogs.com/gcgc/p/14680888.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!