- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我们在调用 distinct() 之后链接对 filter() 的调用,则过滤器将应用于 distinct 之前的查询。应用distinct后如何过滤查询结果?Example.objects.order_by('a','foreignkey__b').distinct('a').filter(foreignkey__b='something')
filter() 产生的 SQL 中的 where 子句意味着过滤器应用于不同的查询之前。我想过滤由不同产生的查询集。
这可能很容易,但我无法完全弄清楚,也找不到任何内容。
编辑1:
我需要在 ORM 中执行此操作...SELECT z.column1, z.column2, z.column3
FROM (
SELECT DISTINCT ON (b.column1, b.column2) b.column1, b.column2, c.column3
FROM table1 a
INNER JOIN table2 b ON ( a.id = b.id )
INNER JOIN table3 c ON ( b.id = c.id)
ORDER BY b.column1 ASC, b.column2 ASC, c.column4 DESC
) z
WHERE z.column3 = 'Something';
(顺便说一下,我正在使用 Postgres。)
所以我想我要问的是“你如何在 ORM 中嵌套子查询?这可能吗?”我会检查文档。
抱歉,如果我之前没有具体说明。我脑子里不太清楚。
最佳答案
这是一个老问题,但是在使用 Postgres 时,您可以执行以下操作来强制对“Distinct”行进行嵌套查询:
foo = Example.objects.order_by('a','foreign_key__timefield').distinct('a')
bar = Example.objects.filter(pk__in=foo).filter(some_field=condition)
Toast.objects.filter(pk__in=bar.values_list('foreign_key',flat=true))
关于Django:如何在distinct()之后过滤(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150162/
我是一名优秀的程序员,十分优秀!