Table aliases
ShipCompanies customerCompany = SHIP_COMPANIES.as("CUSTOMER_COMPANY");
ShipCompaniesseats customerCompanySeat = SHIP_COMPANIESSEATS.as("CUSTOMER_COMPANYSEAT");
ShipCompanies inChargeOfCompany = SHIP_COMPANIES.as("INCHARGEOFF_COMPANY");
ShipCompaniesseats inChargeOfCompanySeat = SHIP_COMPANIESSEATS.as("INCHARGEOFF_COMPANYSEAT");
JOIN on table aliases
.innerJoin(customerCompanySeat).onKey(Keys.FK_SHIP_ORDERS_SHIP_COMPANIESSEATS_CUSTOMER)
.innerJoin(customerCompany).onKey(Keys.FK_SHIP_COMPANIESSEATS_SHIP_COMPANIES)
.innerJoin(inChargeOfCompanySeat).onKey(Keys.FK_SHIP_ORDERS_SHIP_COMPANIESSEATS_INCHARGEOF)
.innerJoin(inChargeOfCompany).onKey(Keys.FK_SHIP_COMPANIESSEATS_SHIP_COMPANIES)
the 2nd bold part generate same sql code of 1st bold part on a side of the join.
Is it a know behavior? Does it means that i can't use FK Keys on join when table compare more than one time (via table aliases)?
I was save by warning....
21:00:34.081 [main] INFO org.jooq.impl.Fields - Ambiguous match found for ID_Company. Both "CUSTOMER_COMPANYSEAT"."ID_Company" and "CUSTOMER_COMPANY"."ID_Company" match.
21:00:34.081 [main] INFO org.jooq.impl.Fields - Ambiguous match found for ID_Company. Both "CUSTOMER_COMPANYSEAT"."ID_Company" and "INCHARGEOFF_COMPANYSEAT"."ID_Company" match.
Here there are right SQL
from [dbo].[Ship_Orders]
join [dbo].[Ship_CompaniesSeats] [CUSTOMER_COMPANYSEAT]
on [dbo].[Ship_Orders].[ID_CompanySeat_Customer] = [CUSTOMER_COMPANYSEAT].[ID_CompanySeat]
join [dbo].[Ship_Companies] [CUSTOMER_COMPANY]
on [CUSTOMER_COMPANYSEAT].[ID_Company] = [CUSTOMER_COMPANY].[ID_Company]
join [dbo].[Ship_CompaniesSeats] [INCHARGEOFF_COMPANYSEAT]
on [dbo].[Ship_Orders].[ID_CompanySeat_InChargeOf] = [INCHARGEOFF_COMPANYSEAT].[ID_CompanySeat]
join [dbo].[Ship_Companies] [INCHARGEOFF_COMPANY]
on [INCHARGEOFF_COMPANY].[ID_Company] = [INCHARGEOFF_COMPANYSEAT].[ID_Company]
and here wrong one
from [dbo].[Ship_Orders]
join [dbo].[Ship_CompaniesSeats] [CUSTOMER_COMPANYSEAT]
on [dbo].[Ship_Orders].[ID_CompanySeat_Customer] = [CUSTOMER_COMPANYSEAT].[ID_CompanySeat]
join [dbo].[Ship_Companies] [CUSTOMER_COMPANY]
on [CUSTOMER_COMPANYSEAT].[ID_Company] = [CUSTOMER_COMPANY].[ID_Company]
join [dbo].[Ship_CompaniesSeats] [INCHARGEOFF_COMPANYSEAT]
on [dbo].[Ship_Orders].[ID_CompanySeat_InChargeOf] = [INCHARGEOFF_COMPANYSEAT].[ID_CompanySeat]
join [dbo].[Ship_Companies] [INCHARGEOFF_COMPANY]
on [CUSTOMER_COMPANYSEAT].[ID_Company] = [INCHARGEOFF_COMPANY].[ID_Company]
taken from first tables alias instead of second one
Denis