$terms = db_select('term_data', 'td')
->fields('td', array('tid', 'name', 'vid', 'weight'))
->leftJoin('term_node', 'tn', 'td.tid = tn.tid')
->join('node', 'n', 'tn.vid = n.vid')
->execute();
foreach ($terms as $term) {
// do something with $term
}
Подсказка: иногда при нахождении всех этих ошибок будет трудно найти ошибки. При желании вы можете установить каждую строку за раз, и, похоже, ошибки лучше сообщаются.
$query = db_select('term_data', 'td');
$query->fields('td', array('tid', 'name', 'vid', 'weight'));
$query->leftJoin('term_node', 'tn', 'td.tid = tn.tid');
$query->join('node', 'n', 'tn.vid = n.vid');
$terms = $query->execute();