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

时间:2018-12-15 09:03:08

标签: mysql jooq

在这种情况下,我必须从table2中找到多个列的总和,而我必须从另一个table1中的where子句中获得值。

我写了mySql查询,内容如下。我需要在jooq中写它。

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;

1 个答案:

答案 0 :(得分:0)

作为一般经验法则,org.jooq.impl.DSL的所有功能都可以使用相同的名称,而org.jooq.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();