php - 在 hook_views_query_alter() 中添加 JOIN 语句

标签 php sql drupal drupal-6

我需要修改 Views 生成的查询,以便我可以使用高度自定义的过滤器。由于这个问题,我已经用一些 OR 实现了 add_where() 函数:OR operator in Drupal View Filters

然而,这只解决了我的部分问题。有些字段我无法过滤,因为我需要在查询中加入额外的 JOIN。

是否有类似的东西

$view->query->add_where()

可以插入JOIN语句吗?

最佳答案

我找到了答案 here .无耻复制:

function hook_views_query_alter(&$view, &$query) {
    $join = new views_join();
    $join->table = 'my_table';
    $join->field = 'my_field';
    $join->left_table = 'left_table';
    $join->left_field = 'left_field';
    $join->type = 'left';
    $join->extra = array(
        array(
            'field' => 'bundle',
            'value' => 'user',
        )
    );
    $query->add_relationship('relationship_name', $join, 'node');
}

关于php - 在 hook_views_query_alter() 中添加 JOIN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134941/

相关文章:

javascript - 函数没有触发?

javascript - 使用 JQuery 获取所有选中的单选按钮的值

sql - 合并两列中两个sql查询的结果

php - php/flash 应用程序上的生物识别登录

http - Pelican 静态站点生成器上的 301 HTTP 响应

php - 使用“选择”和“加入”比较用户输入的日期

php - Log.php 从 MySQL 数据库返回 'Invalid User'

sql - 按共同好友数排序

MySql:日期(字符串)周围的引号如何影响结果?

mysql - Drupal节点/数据导入问题