JOOQ - 在选择查询中选择计数

托比亚斯眨眼

将以下语句转换为时遇到问题jooq API

SELECT t1.col1, t1.col2, t1.col3, (SELECT count(*) FROM table2 where table2.col2 = t1.col1)
FROM table1 t1

我试过DSL.count()DSL.selectCount(),但我失败了,而搜索的方式来where子句添加到计数子查询。

数据库是 PostgreSQL 9.6。

托比亚斯眨眼

Lukas 建议使用DSL.field是更好的解决方案,因为它保留了<T>类型。

更多类型安全版本:

TableField<Table1Record, Long> col1 = TABLE1.COL1;
Field<Integer> count = DSL.field(DSL.selectCount().from(TABLE2).where(TABLE2.COL2.eq(col1)));
using(configuration).select(col1, count).from(TABLE1).fetch();

我的第一个(不太安全的)解决方案:

TableField<Table1Record, Long> col1 = TABLE1.COL1;
Field count = DSL.selectCount().from(TABLE2).where(TABLE2.COL2.eq(col1)).asField("count");
using(configuration).select(col1, count).from(TABLE1).fetch();

也许有一个更优雅的解决方案,但它有效。生成的查询看起来像我的原始查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择查询的Jooq AddCondition方法

来自分类Dev

jOOQ:选择原始值

来自分类Dev

如何使用jOOQ在PostGIS中选择面内的点?

来自分类常见问题

如何在Jooq中选择unix时间戳作为日期?

来自分类Dev

jOOQ-插入...选择...返回

来自分类Dev

从联接查询中选择2个计数

来自分类Dev

如何在jOOQ中编写计数查询

来自分类Dev

如何获取此查询的计数-从(选择AccountId,从帐户中选择*)中选择计数(*)作为CountRecord

来自分类Dev

Jooq Postgres JSON查询

来自分类Dev

在jOOQ中从例程查询

来自分类Dev

从jooq查询创建PreparedStatement

来自分类Dev

JOOQ-嵌套查询

来自分类Dev

jOOQ:重用/复制查询

来自分类Dev

JOOQ与SQL查询

来自分类Dev

jOOQ子选择中的Typesafe列

来自分类Dev

DSL选择中的JOOQ和PostgreSQL类型

来自分类Dev

在jooq中选择binary(16),但显示十六进制字符串

来自分类Dev

如何在jooq中选择自动生成的记录和其他数据?

来自分类Dev

如何在jooq中选择自动生成的记录和其他数据?

来自分类Dev

jOOQ并在枚举对象中选择一个枚举字段

来自分类Dev

从MySQL中选择计数

来自分类常见问题

与PostgreSQL的一种连接中的JOOQ多重选择计数

来自分类Dev

在选择查询中选择cakephp

来自分类Dev

在单个查询中从多个表中选择记录计数

来自分类Dev

MySQL在一个查询中选择多个计数

来自分类Dev

在单个查询中从多个表中选择记录计数

来自分类Dev

SQL-从JOIN查询中选择Discint并计数

来自分类Dev

Mysql:在一个查询中选择计数和 IN 子句

来自分类Dev

JOOQ查询的Java返回结果