Posted by gg45 on January 6, 2011 at 10:44am
たびたびお世話になります。
現在viewsモジュールを利用してノードの一覧ページを作成しています。
その中で、重複行があるのでDISTINCTを利用して重複を回避したいと思っているのですが、
Drupal(views)が作成したsqlをオーバーライドする方法をお教えいただけませんでしょうか。
また、上記対応できるような便利なモジュール等ございましたらお教えいただけると大変助かります。
どうぞよろしくお願い致します。
Comments
Viewsのsqlをオーバーライドする方法はないと思います
Viewsのsqlをオーバーライドする方法はないと思います。DISTINCTを使っても、重複なデータが表示していますか?
Viewsには distinct
Viewsには distinct の設定があるので、まずそれを試してみてはどうでしょう。
Views 設定画面の Basic settings に 'Distinct' という項目があるので、これを 'Yes' に設定してみてください。
それでも駄目な場合、以下の二つの hook のいずれかで対応できると思います:
hook_views_pre_execute()
hook_db_rewrite_sql()
オーバーライドできました。
Jay Matwichukさん、dokumoriさん。
ごれんらくありがとうございます。
やりたかったことが、viewsのdistinctだけではできなかったので、
hook_db_rewrite_sql()を利用し、無事オーバーライドできました。
本当にありがとうございました。