scala - 显式编写联接查询时光滑不联接
问题描述
val query = Foo
.join(Bar)
.on(_.fooId === _.id)
.filter { case (foo, bar) =>
foo.someId === 666 && bar.status === 1
}
.map { case (_, bar) => (bar.id, bar.name) }
.take(1)
这段代码变成sql语句如下:
select x2.`id`, x2.`name`
from `Bar` x3, `Foo` x2
where ((x3.`someId` = 666) and (x2.`status` = 1)) and (x3.`fooId` = x2.`id`)
limit 1
正如 slick 的文档所说(https://scala-slick.org/doc/3.1.0/sql-to-slick.html#explicit-inner-joins),语法join
并on
产生显式连接查询。那么这里发生了什么?
解决方案
推荐阅读
- java - 你可以远程取消rabbitmq消费者吗?
- javascript - 如何在 Vue.Js 中占位符元素的 v-bind 指令后添加 html 文本?
- python - 如何在python中导入google的taskqueue库
- joomla - Joomla - 如何将管理员模块定位到管理员主页面以外的不同页面?
- java - 所有作业完成后的 Spring 批处理触发过程
- ada - 赋值是 Ada 中派生类型和子类型之间的唯一区别吗?
- include - Apache 2.4 配置包含文件似乎被忽略
- perl - 使用 Par::Packer 和包含 Net::SSH2 的脚本创建的 .exe 不起作用
- angularjs - 使用 angularJS http 服务捕获代理错误等错误
- wordpress - 启用 Wordpress Divi 主题顶部标题菜单