scala – Slick:结合SQL和查询API

我有一些复杂的SQL,在执行时返回两个Long列.

现在,我该如何编写如下查询?

val sqlStr: String = ??? // My complex SELECT statment
val sqlQuery = queryNA[(Long, Long)](sqlStr)
for {
  data <- tableQuery if data.id in sqlQuery._1
} yield data

我希望它能产生像SELECT … FROM table WHERE table.id IN(SELECT …)
这甚至可能吗?如果没有,你能指出一些其他类似的方法或解决方法吗?这里的问题:

>大多数其他部分都使用Query API,我希望它可以互操作
>直接执行sqlStr将获取大量结果,我想避免这种情况

最佳答案 提升嵌入(查询API)和普通SQL目前不能互操作.提升嵌入需要知道从scala代码获得的确切结构以进行优化.它不能在纯SQL代码上执行此操作.我想你可以想象未来的事情,但目前还没有具体的计划.

我创建了一张票,所以我们会在某个时候调查它:https://github.com/slick/slick/issues/756

点赞