Scala squeryl中的多个左连接
我的数据模型由用户组成。一个用户可以有多个文件夹,一个文件夹可以包含多个帐户 我想运行一个查询,一次返回上述所有信息 返回包含文件夹的用户的查询如下所示:Scala squeryl中的多个左连接,scala,left-join,squeryl,Scala,Left Join,Squeryl,我的数据模型由用户组成。一个用户可以有多个文件夹,一个文件夹可以包含多个帐户 我想运行一个查询,一次返回上述所有信息 返回包含文件夹的用户的查询如下所示: val usersWithFolder = from(MySchema.users, MySchema.folders)((u, f) => where(u.idField === f.userId) select ((u, f))) 我想要一个这样的查询: join(MySchema
val usersWithFolder = from(MySchema.users, MySchema.folders)((u, f) =>
where(u.idField === f.userId) select ((u, f)))
我想要一个这样的查询:
join(MySchema.users, MySchema.folders.leftOuter, MySchema.accounts.leftOuter)((u, f, a) =>
select(u, f, a)
on (u.idField === f.map(_.userId), ???))
如何将帐户映射到文件夹?我不能使用f.idField==a.map(u.folderId)
,因为它看起来像f
是一个列表
提前谢谢
Flo我认为f
将是一个选项
,因此类似这样的东西应该可以工作:
join(MySchema.users,
MySchema.folders.leftOuter,
MySchema.accounts.leftOuter)((u, f, a) =>
select(u, f, a)
on (u.idField === f.map(_.userId),
f.map(_.idField) === a.map(_.folderId))
)