使用jooq并与另一个表连接的多个列的总和

sirbozc5  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(325)

我有一个场景,在这个场景中,我必须从表2中找到多个列的总和,并且在另一个表1的where子句中找到值。
我编写了mysql查询,如下所示。我要把它写在约克上。

select (sum(t2.column1)+sum(t2.column2)+sum(t2.column3)) as total_amount 
from db.table1 t1, db.table2 t2 
where t1.column1 = ‘value1’ and t1.column2 = t2.column4;
axr492tv

axr492tv1#

一般来说,所有功能都可以从 org.jooq.impl.DSL 所有运算符都可以从 org.jooq.Field 通过反映运算符发音方式的名称。在您的情况下,请使用:
DSL.sum(Field) Field.plus(Field) 具体来说,假设此静态导入:

import static org.jooq.impl.DSL.*;

写:

Table1 t1 = TABLE1.as("t1");
Table2 t2 = TABLE2.as("t2");
ctx.select(sum(t2.COLUMN1).plus(sum(t2.COLUMN2)).plus(t2.COLUMN3)).as("total_amount"))
   .from(t1, t2)
   .where(t1.COLUMN1.eq("value1"))
   .and(t1.COLUMN2.eq(t2.COLUMN4))
   .fetch();

相关问题