如何通过关系限制Drupal View结果

时间:2011-01-17 15:36:02

标签: drupal drupal-6 drupal-views

我在以下关系中预定了一组与Drupal杂志相关的内容类型:

  • 故事:具有标题,正文,作者,对问题的必需节点引用,对插图的可选节点引用。
  • 文章:对问题有标题,正文和必需的节点引用。
  • 插图:有图片和投稿人资料。
  • 问题:有标题和日期。
  • 投稿人资料:具有名字和姓氏。

我想要得到的是一个问题列表,其中一个故事的插图显示,如果有的话。如果没有故事(可能只有文章),或者没有插图的故事,我只想列出问题的标题。

所以我正在寻找以下输出:

[StoryImage] 2010年12月
2010年11月
[StoryImage] 2010年10月
[StoryImage] 2010年9月

此时我并不关心样式或标记 - 我可以指出这一点。

这是我到目前为止无法正常工作的视图设置:

  • 过滤器:节点类型=故事,文章
  • 关系:
    1. 内容:问题
    2. 内容:插图
    3. 内容:贡献者,使用插图关系
  • 字段:
    1. 内容:图片,使用插图关系
    2. 节点:标题,使用问题关系
  • 排序条件:
    1. 发行日期,降序。
    2. 投稿人姓氏,降序。

我得到的(正如我所料)是每个问题的列表,与问题中的文章/故事一样多次。因此,如果2010年12月刊中有3个项目,11月刊中有2个项目,那么这就是我得到的:

[StoryImage] 2010年12月
2010年12月
2010年12月
2010年11月
2010年11月

我真正想要的只是每个问题的第一个结果。这是可能的,如果是的话,我错过了什么?

3 个答案:

答案 0 :(得分:3)

在视图的高级设置中,启用聚合。然后确保您视图中的第一个字段是您尝试获取不同结果的内容类型的NID(在您的情况下,这将是我认为的问题),以便它首先按此分组。您可能还需要在Node Title字段上设置aggregation = MIN。

我在此处找到了此信息:http://drupal.org/node/1200536#comment-4957410

注意:我刚刚注意到你的问题被标记为Drupal 6,这个解决方案可能特定于Drupal 7,但这个答案可能对其他人有帮助。

答案 1 :(得分:0)

您是否尝试过“Distinct”过滤器?我不确定你的日期字段是否可以使用,但每当我得到带有视图的笛卡儿产品时,我就会使用它。

答案 2 :(得分:-1)

只需使用drupal db api并编写一个寻呼机查询。根据我的经验,对于大多数情况,观点是有效的,但并非所有情况都是如此。