首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Korma中从表中选择任何字段

在Korma中从表中选择任何字段
EN

Stack Overflow用户
提问于 2014-01-20 19:05:56
回答 1查看 395关注 0票数 4

我正在尝试跨多个表进行连接(三个表加上中间的一个连接表)。我觉得科尔玛是在懒洋洋地评估最后一次加入。我要做的是添加一个条件,限制联接中第一个表的结果,但我只对联接中最后一个表中的字段感兴趣。

例如,我有clubspeoplehobbies表,以及最后两个表的people-to-hobbies连接表。每个俱乐部都可以有很多人,每个人都可以有很多爱好。

我正在尝试获取属于某一特定俱乐部的人的所有爱好的全部细节,但我不想从club表中得到任何字段。join表意味着korma将创建两个查询,一个用于获取特定俱乐部中的所有人员,另一个用于通过people-to-hobbies join表检索此人的业余爱好。

我的korma查询如下所示:

代码语言:javascript
复制
(select clubs
  (with people
    (with hobbies
      (fields :hobby-name :id)
      (where {:clubs.name "korma coders"}))))

问题是,我还没有指定要从clubspeople中选择哪些字段,默认情况是选择*。如何从这些表中不包含任何字段?这是可能的吗,或者说hobbies被延迟加载是否意味着korma必须在第一个查询中返回一些结果(这会给我一个过滤过的人员列表),所以当我稍后询问它时,它有运行第二个查询所需的ids吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 15:07:58

在这种情况下,我会使用join宏:

代码语言:javascript
复制
(select clubs
  (join people)
  (join people-to-hobbies)
  (join hobbies)
  (fields :hobbies.hobby-name :hobbies.id)
  (where {:clubs.name "korma coders"}))))

它稍微显式一点,但作为额外的好处,它只运行一个查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21242097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档