首页 > 解决方案 > Ineer Join 查询在 scala slick 中的位置

问题描述

我有两个表地址,地址表 Adrressid 中​​的 UserAddressMapping,地址在那里,在第三个表中我映射了这个用户 ID 和地址 ID

在 sql

Select a.Addressid,a.AddressNmae 
from address table a 
inner join UserAdrressmaping b on a.Adessressid=b.Adreesid 
where userid=1

How to write this thing in Scala slick 这就是我所做的

   def innerJoin1(UserId:Int): Future[Seq[UserRegister]]  =  {
 val join=address.join(addressid).on(_.Userid === _.UserId)

    dbConfig.run(join.result )
  }

标签: scalaslick

解决方案


对于内部连接,您可以使用带有过滤子句的 slick applicative-join 。例如:

val query = for {
  (address, userAddressMapping) <- Address join UserAddressMapping on (_.id === _.addressId)
  if userAddressMapping.userId === 1
} yield (address.id, address.name)

dbConfig.run(query.result)

推荐阅读