在这种情况下,我必须从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;
答案 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();