你如何在db_select中查询查询?

时间:2014-05-04 20:42:54

标签: drupal-7

id  reference_id   
1    3             

2    9             

3    6       

4    2

4    1

我想查询上面的内容并根据列'id'的desc获取列表 然后我想按参考ID中的值对结果进行分组,并限制为两个答案

所以输出将是

4   1

4   2

下面是我的代码,但我没有得到任何地方

 $account = user_load($uid); // had to load the user to get the username for the below query
    $query1 = db_select('eck_eventlog', 'e');
    $query1->condition('e.type', 'eventlog');
    $query1->condition('e.reference_id', $flagged_nodes, 'IN');
    $query1->condition('e.username', $account->name); // added this as for user type was getting   the wrong result
    $query1->fields('e')
      ->orderBy('id', 'DESC');

    $query = db_select($query1,'t');
    $query->groupBy('t.reference_id');
    if ($limit != '') {
      $query->range(0, $limit);
    }
    $result = $query->execute();
    return $result;

1 个答案:

答案 0 :(得分:0)

您可以查看此页面以获取示例:http://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial

基本上SELECT的输出可以进入另一个SELECT。

如果您使用'AS'正确命名,这确实有帮助。