我正在尝试加入每个节点的Fivestar评级,以便我可以按评级对它们进行排序.问题是我查询的Fivestar值存储在votingapi_cache中,每个节点有多行(投票数和平均评级),所以我想做以下事情:
...
LEFT JOIN votingapi_cache fivestar
ON fivestar.entity_id = node.nid
AND fivestar.function = 'average'
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下代码,但问题是检查"fivestar.function ='average'"被添加到where子句中,这消除了所有没有投票的节点.
$query->leftjoin('votingapi_cache', 'fivestar', 'fivestar.entity_id = n.nid');
$query->condition('fivestar.function', 'average', '=');
$query->addField('fivestar', 'value', 'average_rating');
Run Code Online (Sandbox Code Playgroud)
好的,我第一次尝试这个我一定做错了,但这是解决方案:
$query->leftjoin('votingapi_cache', 'fivestar', "fivestar.entity_id = n.nid AND fivestar.function = 'average'");
Run Code Online (Sandbox Code Playgroud)
Som*_*gOn 10
好的,我第一次尝试这个我一定做错了,但这是解决方案:
$query->leftjoin('votingapi_cache', 'fivestar', "fivestar.entity_id = n.nid AND fivestar.function = 'average'");
Run Code Online (Sandbox Code Playgroud)