Question

Can we use SelfJoin in JOOQ?

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

If Yes how can we use it in Above Query?

Was it helpful?

Solution

The manual's section about aliasing tables might give you some clues.

Essentially, just assign aliases to your 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))
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top