"Saymak" ve "sahip olmak" özellikleri ile bir Drupal 7 sorgusu nasıl yazılır?


14

Aşağıdaki sorgu drupal7 standartlarında çalışmasını sağlayamıyorum ... Herkes bana bu konuda yardımcı olabilir? Biraz acil ...

SELECT n.nid AS nid, n.title AS title, count(n.title) AS ncount 
FROM node n 
INNER JOIN taxonomy_index tn ON n.nid = tn.nid 
WHERE (n.type = 'test') 
AND (tn.tid IN( 23,37)) 
AND (n.title LIKE '%name%') 
AND (n.status = 1) 
GROUP BY n.nid 
HAVING ncount = 2

Yanıtlar:


25

Bu kafamın tepesinde, bu yüzden dikkatli ol ...

$query = db_select('node', 'n')
  ->fields('n', array('nid', 'title'))
  ->condition('n.type', 'test')
  ->condition('tn.tid', array(23, 37))
  ->condition('n.title', '%' . db_like('name') . '%', 'LIKE')
  ->condition('n.status', 1)
  ->groupBy('n.nid');

// Add the COUNT expression
$query->addExpression('COUNT(n.title)', 'ncount');

// Add the HAVING condition
$query->havingCondition('ncount', 2);

// Add the JOIN
$query->join('taxonomy_index', 'tn', 'n.nid = tn.nid');

$results = $query->execute();

Teşekkürler Clive! Ek bir ortak unsur: eklediğim sayıya göre sıralamak$query->orderBy('ncount', 'DESC');
23'te greggles
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.