如何在光滑中执行相关子查询?

时间:2015-08-28 02:16:47

标签: scala slick

我需要进行以下查询

从tableA中选择fieldA不存在(从tableB中选择id,其中fieldK = tableA.fieldA)

如何在光滑的环境中完成此操作?使用光滑的2.10

2 个答案:

答案 0 :(得分:3)

试试这个

for {
  a <- A if !B.filter(b => b.fieldK === a.fieldA).exists
} yield (a.fieldA)

答案 1 :(得分:0)

感谢Biswanath

implicit session =>
  val B = for { r <- TableB } yield r.fieldK
  val q = for { r1 <- TableA if !B.filter(b => b.a = r1.fieldA).exists } yield (r1.fieldA) 
  val materializedResult = q.buildColl[List]

上面,“。a”是查询中表示返回的单个字段的方法。这给了我一个List [String],在mysql query.log中我得到了我想要的查询。