2011-08-31 10 views
7

Drupal'da birkaç satırlık bir SUM ile basit bir seçim yapmak istiyorum, ancak bunu nasıl yapacağımı anlayamıyorum. Drupal'da bir sorgulama yapmanın daha fazla yolu olduğunu biliyorum (bunlardan biri gerçek sorguyu yazıyor, ama ben bunu istemiyorum).Drupal - Satırların SUM'u nasıl alınır

$query = db_select("node","n"); 
$query->fields("n", array("nid","likes" => "SUM(likes)")); 

Ama görünüşe Drupal benim parantez şeritler ve aşağıdaki hatayı alıyorum: Burada

kod ben edilir

1054 Unknown column 'n.SUMlikes' in 'field list' 

kimse bana yardımcı olabilir mi? $query->sum() gibi bir şey var mı?

cevap

16

Bir ifade kullanarak uzakta iyi olurdu:

$query = db_select('node', 'n') 
    ->fields('n', array('nid')); 
$query->addExpression('SUM(likes)', 'likes'); 

İlk argüman takma ikinci, ifadesidir.

Bu,

+0

mükemmel yardımcı olur umarım. Tam da aradığım şey. teşekkür ederim. –

+0

Ve sonuca nasıl erişebilirim? $ Query-> toplam? –

+0

// Aşağıdaki sözdizimi benim için çalıştı $ query = db_select ('node', 'n') -> alanlar ('n', array ('nid')); $ query-> addExpression ('SUM (beğeni)', 'beğeni'); $ query-> execute(); – qasimzee