Это может больше не относиться к вам, но есть то, что кажется очень полезным обсуждением на Drupal.org на Реализация пользовательского запроса SQL для Views / Filters , который выглядит так, как будто он отвечает на мой аналогичный вопрос.
В частности, в первоначальном плакате было предложено прикрепить к крючку views_views_pre_execute
, который кто-то еще упомянул, можно вставить в пользовательский модуль, например:
function mymodulename_views_pre_execute(&$view) {
if($view->name=="groups_list2") {
// ...
$view->build_info['query'] = "SELECT node.nid AS nid ".
"FROM node WHERE node.type='%s'"; // wrapped for legibility
}
}
И еще один автор упомянул mySQL Views и Table Wizard ( прямая ссылка ), хотя они упомянули, что стоит иметь в виду эту статью о Производительность MySQL Views
Определенно стоит прочитать всю ветку на Drupal.org, хотя, как мне показалось, это действительно полезно; Я надеюсь, что кто-то другой тоже.
Обновление: Действительно, это именно то, что мы сейчас делаем - переопределение views_views_pre_execute
в пользовательском модуле для внедрения нового SQL перед тем, как он попадет в базу данных. Я открыл аналогичный (но более конкретный) вопрос о Drupal.SE в Медленный запрос с большим набором данных в представлениях Drupal - лучше обрабатывать в SQL или PHP? , что может оказаться полезным.