对于光滑的理解,当生成器返回空(连接)时返回空结果

时间:2015-01-21 19:41:34

标签: scala slick

很抱歉,如果这是一个超级菜鸟问题,但基本上我是这个代码:

  def testGroup(uid : String) = {
    for{
      group <- groups if group.gid === uid
      subtopic <- subtopics if subtopic.stgroupid === uid
    } yield (group,subtopic)
  }

如果我的查询找不到它的stgroupid与uid相同的任何子主题,那么查询返回一个空向量,我希望它返回该组,并为sutopic提供null或甚至更好,选项类型无。

我正在阅读加入和压缩1,似乎我需要使用左连接,因为这个查询不是什么大问题,但是我使用leftJoin的其他查询可能不是这样明确,如:

def getGroup(uid: String) = {

for {
  group <- groups if group.gid === uid
  groupToRelated <- relatedgroups if groupToRelated.rgid === group.gid //must use a foreign key here
  related <- groups if groupToRelated.rgrelatedid === related.gid
  subtopic <- subtopics if subtopic.stgroupid === uid
  article <- articles if article.asuttopicid === subtopic.stid
} yield (group, subtopic, article)


}

在这里,相关的子主题文章可以返回一个空结果,我希望可以处理它,如果例如,查询没有返回sutopic我只能返回组名称然后...

谢谢!

0 个答案:

没有答案