【问题标题】:Drupal views, how does views get data from this query? (sql, might not be Drupal specific)Drupal 视图,视图如何从这个查询中获取数据? (sql,可能不是 Drupal 特定的)
【发布时间】:2013-06-13 12:27:23
【问题描述】:

我使用 Drupal 视图来生成下面的查询。它获取组 x 的所有用户。

SELECT users.name AS users_name, users.uid AS uid,'user' AS field_data_field_blogging_name_user_entity_type
FROM 
{users} users
INNER JOIN {users_roles} users_roles ON users.uid = users_roles.uid
WHERE (( (users.status <> '0') AND (users_roles.rid = '5') ))

问题是我还想要一些在另一个表中的信息。在名为“field_data_field_blogging_name”的表中,我想获取由 entity_id(即 entity_id == uid)标识的“field_blogging_name_value”。

当我运行这个查询时,我得到一个简单的“用户”占位符。我的问题是为什么视图会使用这些占位符,是否可以编写上述查询以使其工作?如果有怎么办?

提前致谢

【问题讨论】:

    标签: sql drupal-7 drupal-views


    【解决方案1】:
    1. 您应该能够在高级设置下的视图 UI 中添加关系

    2. 如果出于某种原因您想在代码中执行此操作,则需要在 HOOK_views_query_alter 中使用类似的方式添加连接

      $query->leftjoin('field_data_field_blogging_name', 'blogname', 'node.nid = blogname.entity_id'); $query->fields('blogname', array('field_blogging_name_value',));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多