所以我在 Drupal 中有这个 sql 代码:
$query = db_query('SELECT wpv.nid, n.title, AVG(vote) average FROM {wp_votes} wpv
LEFT JOIN {node} n on wpv.nid = n.nid
GROUP BY wpv.nid
ORDER BY average DESC
LIMIT 3');
它工作得很好,但我需要用 db_select 编写它:
$query2 = db_select('wp_votes','wpv');
$query2->join('node','n','wpv.nid = n.nid');
$query2->fields('wpv',array('nid','vote'));
$query2->fields('n',array('title'));
$rez = $query2->execute()->fetchAll();
我的问题是我不知道如何获得平均票数(票数是 1,2 或 3)。我如何用 AVG(vote) 重写部分。我尝试使用 addEXpression('AVG(vote)') 但它没有按预期工作,我得到了所有条目的平均值,而不仅仅是那些具有相同 ID 的条目。
谢谢。