Ineer Join查询以及scala slick中的位置

时间:2018-08-18 16:41:18

标签: scala slick

我有两个表地址,UserAddressMapping  在Adress表Adrressid中,地址在那里,在第三张表中,我映射了该用户ID和地址ID

在sql

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

如何用Scala slick编写此东西  这远远不是我所做的

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

    dbConfig.run(join.result )
  }

2 个答案:

答案 0 :(得分:0)

对于内部联接,您可以使用带有过滤子句的光滑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)

答案 1 :(得分:0)

只是前一个的补充。如果您碰巧有by的{​​{1}},请不要忘记将其投射:

BigDecimal