java - 如何在 Jooq 中使用 SelfJoin?

标签 java sql jooq

我们可以在JOOQ中使用SelfJoin吗?

Select Count(1) CountPayments 
From PaymentDetail APD1, PaymentDetail APD2, Payment AP 
where APD1.PaymentNumber =123 
  and APD1.BillNumber > 0 
  and APD2.BillNumber = APD1.BillNumber 
  and APD2.PaymentNumber <> APD1.PaymentNumber 
  and AP.PaymentNumber = APD2.PaymentNumber

如果是,我们如何在上述查询中使用它?

最佳答案

The manual's section about aliasing tables可能会给你一些线索。

本质上,只需为您的表分配别名即可:

PaymentDetail APD1 = PaymentDetail.as("APD1");
PaymentDetail APD2 = PaymentDetail.as("APD2");
Payment AP = Payment.as("AP");

DSL.using(configuration)
   .select(count(1).as("CountPayments"))
   .from(APD1, APD2, AP)
   .where(APD1.PaymentNumber.eq(123))
   .and(APD1.BillNumber.gt(0))
   .and(APD2.BillNumber.eq(APD1.BillNumber))
   .and(APD2.PaymentNumber.ne(APD1.PaymentNumber))
   .and(AP.PaymentNumber.eq(APD2.PaymentNumber))

关于java - 如何在 Jooq 中使用 SelfJoin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467972/

相关文章:

java - 如何使用外部类中的类的 Graphics 对象

mysql - 查询中的 GROUP BY

mysql - jOOQ如何支持MySQL的dual?

java - jooq 中的列函数用于分割字符串

maven - 在 Maven 中使用嵌入式数据库与 Flyway 和 jOOQ 进行持续集成

java - MS Access 数据库备份版本控制

java - 在数据库的 <div> 标签中显示换行符

java - 在 Android 中将图像添加到 2d 游戏?

php - 在 like 查询中出现错误 "too few arguments"

mysql - 显示相关记录 vb.net mysql