等同于 yield 的灵活查询

equivalent slick query to for yield

这是使用 for 循环用 slick 编写的查询。这里 user 是 table 名称,我正在尝试更新用户的名字、姓氏。当更新成功完成时,我正在尝试 return userId, firstName, lastName, false to user.

(for {
  _ <- user.filter(_.id ==== id)
            .map(_.map(u => (u.firstName,u.lastName)))
            .update((firstName,lastName))
} yield (user.id.get, firstName, lastName, false))

我试图在不使用 for 理解的情况下获得等效查询。谁能帮我解决这个问题?

我找到了与之前的查询相同但不使用理解的等效查询。

user.filter(_.id === id).map(_.map(u => (u.firstName, u.lastName)))
.update((firstName,lastName))
.map(_ => (user.id.get,firstName,lastName,false))