Reputation: 1849
Following is the Postgresql query and it returns 400+ rows
SELECT
*
FROM
investors,
investments,
investor_personal_information,
sub_products,
products,
company,
issuers,
investment_admin_approvals,
users
WHERE
investments.investor_id = investor_personal_information.id AND
investments.investor_id = investors.id AND
investments.sub_product_id = sub_products.id AND
sub_products.product_id = products.id AND
products.company_id = company.id AND
investments.id = investment_admin_approvals.investment_id AND
issuers.owner = users.id
I've written its equivalent Slick query in Scala
val query = {
val baseQuery = Investments join InvestorPersonalInformation on {
case (its, ipi) => its.investorId === ipi.id
} join Investors on {
case ((its, ipi), irs) => its.investorId === irs.id
} join SubProducts on {
case (((its, ipi), irs), sbp) => its.subProductId === sbp.id
} join Products on {
case ((((its, ipi), irs), sbp), pds) => sbp.productId === pds.id
} join Tables.Company on {
case (((((its, ipi), irs), sbp), pds), cpy) => pds.companyId === cpy.id
} join Tables.Issuers on {
case ((((((its, ipi), irs), sbp), pds), cpy), iss) => cpy.issuerId === iss.id
} join InvestmentAdminApprovals on {
case (((((((its, ipi), irs), sbp), pds), cpy), iss), iaa) => its.id === iaa.investmentId
} join Users on {
case ((((((((its, ipi), irs), sbp), pds), cpy), iss), iaa), usrs) => iss.owner === usrs.id
} map {
case ((((((((its, ipi), irs), sbp), pds), cpy), iss), iaa), usrs) => (its, ipi, irs, sbp, pds, cpy, iss, iaa, usrs)
}
baseQuery
}
When I run db.run(query.result)
I get only 12 rows. I am using inner join in both queries and both are equivalent. What can be root cause of this?
Upvotes: 0
Views: 46
Reputation: 1644
The SQL query doesn't contain the join on company.issuer_id = issuers.id
.
Upvotes: 2
Reputation: 14825
If you are slick 3.0 and above. Print the sql statement generated by slick and compare with your raw sql query.
Following code will help you get the sql generated by slick
query.result.statements.foreach(println)
Upvotes: 0