Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala squeryl中的多个左连接_Scala_Left Join_Squeryl - Fatal编程技术网

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))
  )