2010-11-04 63 views
1

我正在使用Feeds模塊導入大量的Feed Item節點。由於Feed文件格式不正確,我收到很多重複的文件。我使用視圖來顯示這些節點,並且需要能夠在「節點:發佈日期」字段中添加DISTINCT過濾器,因此每個日期後只能得到1個結果。可以這麼說(我不想把所有這些重複的東西放在首位),但是這本身就是一個有趣的問題 - 我找不到一個有趣的問題 - 我找不到一個有趣的問題 - 我找不到一個有趣的問題 - 我找不到一個有趣的問題 - 我找不到在節點ID(在視圖的「基本設置」框中有自己的選項)以外的字段上添加DISTINCT過濾器的方法。Drupal 6&Views 2 - DISTINCT字段

回答

2

我發現了一篇很好的文章,介紹瞭如何在執行之前更改從視圖生成的SQL查詢:http://echodittolabs.org/blog/2010/06/group-views。我使用它基本上將GROUP BY子句後綴添加到查詢的末尾(以一種非常好,乾淨和多功能的方式)。

另外,我還找到了一種方法來解決導入大量重複Feed項目的問題,具體細節如下:http://drupal.org/node/661314#comment-3667228。它採用了非常極端的方法(在每次更新之前刪除所有項目),但這是一些討厭的格式錯誤的Feed的唯一解決方案。

我是抱着出爲讓你做這個意見的一些未被發現的功能,但我不認爲這是一個 - 也許在未來的版本;)

0

我猜你有兩個選擇:要麼在視圖模板文件中放一些邏輯來跳過重複的項目,要麼執行hook_views_query_alter()來更改視圖使用的查詢,添加DISTINCT子句。

+0

感謝您的回覆。我已經找到了使用views_views_pre_execute()的解決方法,請參閱http://echodittolabs.org/blog/2010/06/group-views。看起來很奇怪,沒有辦法使用視圖UI來做到這一點...... – jackocnr 2010-11-04 13:15:08

1

有兩個選項來解決這個問題:\

  • 申請this patch
    OR
  • hook_views_query_alter =>只貼上

    $query->distinct = 1;
    $query->no_distinct = 'views_groupby';

0

我們發現這個問題在Drupal 6.x的看法 - 有150項7複製一個或兩次。不知道爲什麼。問題僅出現在匿名用戶身上。幸運的是,視圖6.x.2.16在基本設置下提供了「獨特」設置,我將它設置爲「是」並擺脫了重複項。