Sunday, December 12, 2010

Standardized Query to select record with join in Drupal 7


$query = db_select('comment', 'c');
$query->innerJoin('node', 'n', 'n.nid = c.nid');
$query->innerJoin('node_comment_statistics', 'ncs', 'ncs.nid = c.nid');
$query->addTag('node_access');
$comments = $query
->fields('c')
->condition('ncs.comment_count', 0, '>')
->condition('c.status', COMMENT_PUBLISHED)
->condition('n.status', NODE_PUBLISHED)
->orderBy('ncs.last_comment_timestamp', 'DESC')
->orderBy('c.cid', 'DESC')
->range(0, $number)
->execute()
->fetchAll();

?>

Adds a tag to a query.
Tags are strings that identify a query. A query may have any number of tags. Tags are used to mark a query so that alter hooks may decide if they
wish to take action. Tags should be all lower-case and contain only letters,numbers, and underscore, and start with a letter. That is, they should follow the same rules as PHP identifiers in general.

No comments:

Post a Comment