有什么方法可以使用光滑的3.2+创建嵌套选择吗? 基本上,我需要在这里How to write nested queries in select clause
中描述所有这些但是在slick 3.2上,这种方法不起作用。
答案 0 :(得分:0)
如果您的表Users
(id:UUID,电子邮件:String)和Persons
(userId:UUID,名称:String,姓:String)比查询表
select email
from Users
where id in (select userId
from Persons
where name = 'John'
and surname = 'Smith')
看起来像:
users
.filter(
_.id in persons
.filter(p => p.name === "John" && p.surname === "Smith")
.map(_.userId)
)
.map(_.email)
.result
您需要记住的事情:
Query
的类型不是DBIO
(也不是DBIOAction
)-如果要编写查询,则需要在对其调用.result
之前进行查询in
代替inSet
无论使用in
,join
等,都应遵循相同的原则。