Scala Slick 3.0&;Postgres 9.4:加入第一行

Scala Slick 3.0&;Postgres 9.4:加入第一行,scala,slick,typesafe,Scala,Slick,Typesafe,这个问题显示了在SQL中实现的方法。我使用的是slick 3.0,有三个表: class ABRelationTable(tag: Tag) extends Table[(Int, Int)](tag, "A_B_RELATION") { def aId = column[Int]("A_ID") def bId = column[Int]("B_ID") def * = (aId, bId) } class ACRelationTable(tag: Tag) extends Ta

这个问题显示了在SQL中实现的方法。我使用的是slick 3.0,有三个表:

class ABRelationTable(tag: Tag) extends Table[(Int, Int)](tag, "A_B_RELATION") {
  def aId = column[Int]("A_ID")
  def bId = column[Int]("B_ID")
  def * = (aId, bId)
}

class ACRelationTable(tag: Tag) extends Table[(Int, Int)](tag, "A_C_RELATION") {
  def aId = column[Int]("A_ID")
  def cId = column[Int]("C_ID")
  def * = (aId, cId)
}

class ATable(tag: Tag) extends Table[(Int, String)](tag, "A") {
  def id = column[Int]("ID")
  def data = column[String]("DATA")
  def * = (aId)
}
我想要的是给出一个
bId
来获得一个对象a和一个可能的
cId
。例如:

表A:

ID           DATA
==================
1            101
2            102
3            103
表A_B_关系

A_ID         B_ID
=================
1            1
2            1
3            2
表A_C_关系

A_ID         C_ID
=================
1            1
2            1
2            2
给定
bId=1
,结果可以是:

A_ID     DATA    C_ID
=====================
1        101     1
2        102     1

谢谢

以下是您的查询

val query=A.join(A_C_关系).on(u.ID==u.A_ID) .join(A\u B\u关系).on(u.ID==u.A\u ID).filter(u.B\u ID==)

其中A、A_C_关系、A_B_关系是各个表的表查询


请参阅更多示例。

以下是您的查询

val query=A.join(A_C_关系).on(u.ID==u.A_ID) .join(A\u B\u关系).on(u.ID==u.A\u ID).filter(u.B\u ID==)

其中A、A_C_关系、A_B_关系是各个表的表查询

有关更多示例,请参阅