我正在使用django orm,并且尝试获取一列的所有值,但前提是只有不同的列对此具有唯一性。很难解释,所以这里有个例子:
q | a | 1
w | s | 2
e | a | 3
q | a | 4
w | s | 5
e | a | 6
我想获取第2列中的所有值,但是如果它们在第1列中也具有相同的值,则不要重复。因此,在这种情况下,我想获得[a,s,a]。 (第3栏仅用于说明为什么这些重复项没有首先合并)。
我尝试过的事情:
我尝试按第1列和第2列的值进行分组,并采用它的不同值,因此最终结果是:
q |一个
w | s --->实际上为[[q,a),(w,s),(e,a)]
e |一个
代码为queryset.values(col1,col2).distinct()
但是我只想要第二列,因此我添加了.values(col2)
。这样做的问题是,第二个values
和第一个.defer()
的结果都不同,所以我得到的不是[a,s,a],而是[a,s]。
我也尝试过使用queryset.values(col1,col2).distinct().defer(col1)
,所以.defer()
,但是显然您在使用.values()
之后不能使用$xmlTest = new SimpleXMLElement('<xmlns:ws:Test></xmlns:ws:Test>', LIBXML_NOERROR, false, 'ws', true);
$xmlTest->addAttribute('xmlns:xmlns:ws', 'http://url.to.namespace');
$xmlTest->addAttribute('xmlns:xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
。
我在网上找不到解决方案,现在已经一无所获,我们将不胜感激!
答案 0 :(得分:1)
如果您使用PostgreSQL作为数据库,请尝试以下操作:
queryset.order_by('col1', 'col2').distinct('col1', 'col2').values('col2')
我还没有机会进行测试,但是它应该找到col1
和col2
组合不同的结果,并返回col2
值。