0

我使用 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”。

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

提前致谢

4

1 回答 1

0
  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',));

于 2013-06-28T16:25:03.203 回答