【发布时间】:2014-10-08 10:22:22
【问题描述】:
这篇文章是我在一个类似问题上发表评论的结果:https://stackoverflow.com/a/19860271/2308858
我正在使用 PostgreSQL 和 jOOQ 3.4 并尝试在 jOOQ 中表示以下 SQL 查询:
SELECT *, COUNT(*) OVER()
FROM table1 t1
JOIN table2 t2 ON (t1.id = t2.id)
JOIN table3 t3 ON (t1.otherId = t3.otherId)
我喜欢 Postgres 让我用SELECT *, COUNT(*) OVER() 简洁地表示“所有列加上count 列”。但是当我尝试在 jOOQ 中表示同样的查询时,我能做的最简洁的方法是:
create.select( TABLE1.fields() ).select( TABLE2.fields() ).select( TABLE3.fields() ).select( count().over() )
.from( TABLE1 )
.join( TABLE2 ).on( TABLE1.ID.equal( TABLE2.ID ))
.join( TABLE3 ).on( TABLE1.OTHER_ID.equal( TABLE3.OTHER_ID ))
理想情况下,我会这样写:
create.select().select( count().over() )
.from( TABLE1 )
.join( TABLE2 ).on( TABLE1.ID.equal( TABLE2.ID ))
.join( TABLE3 ).on( TABLE1.OTHER_ID.equal( TABLE3.OTHER_ID ))
但这似乎不起作用。关于如何做到这一点的任何想法?
【问题讨论】:
标签: java postgresql jooq