где найти схему БД Drupal 7? - PullRequest
0 голосов
/ 22 июля 2011

У меня есть этот запрос в Drupal 6

SELECT term_data.tid AS tid,
   term_data.name AS term_data_name,
   term_data.vid AS term_data_vid,
   term_data.weight AS term_data_weight
 FROM term_data term_data 
 LEFT JOIN term_node term_node ON term_data.tid = term_node.tid
 INNER JOIN node node_term_node ON term_node.vid = node_term_node.vid

как я могу перенести это в схему Drupal 7? У меня как то так, но не работает

SELECT
taxonomy_term_data.tid,
taxonomy_term_data.vid,
taxonomy_term_data.name
FROM
taxonomy_term_data
LEFT JOIN taxonomy_index ON taxonomy_term_data.tid = taxonomy_index.tid
Inner Join node ON taxonomy_index.vid = node.vid

Проблема в том, что таксономия_index.vid не существует.

Я не нашел документацию схемы базы данных drupal 7, вы понимаете? пожалуйста Спасибо

1 Ответ

0 голосов
/ 27 июля 2011
$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();
...