28
Dec 2011

How do I overwrite SQL generated by a View?

comment icon0 comment(s) |

There are several reasons to overwrite an SQL query generated by a view whether it's to improve performance or join to tables not available to the view.

After setting up the view, create a module with a function using hook_views_pre_execute.

 

function [module name]_views_pre_execute(&$view) {
  if($view->name=="[view name]") {
   $sql = "[the new query here]";
   $view->build_info['query'] = $sql;
  }
}

If you need to access arguments passed to the view look in $view->build_info['query_args'].

Requirements

If you don’t have Drupal set up yet, see this post by my friend Scott. He’ll walk you through the process (video).

Subscribe to our Networks

IW on Facebook