idでノードを選択し、フィールドと用語を結合するdb_select()を使用したクエリ


7

idで特定のノードを選択し、それをfield_data_field_projectresources列に結合し、分類から用語を選択するdb_selectを使用してクエリを記述しようとしています(これはterm_referenceフィールドであるため)

私は何度も試みましたが、行き詰まっていました(dr_taxonomy_term_dataテーブルへの参加についての部分さえも知りませんでした)。

 $query = db_select('node','n')
  ->condition('n.nid','5')
  ->fields('n')
  ->fields('p');
 $query->Join('field_data_field_projectresources','p','p.entity_id = n.nid');
 $result = $query->execute();

 while($record = $result->fetchAssoc()) {
   print_r($record);
 }

助けてくれてありがとう、ありがとう


次を使用できます: '$ result = db_query( "SELECT dr_node.nid、dr_node.title as' title '、dr_taxonomy_term_data.name as' resourceterm ' .tid WHERE dr_node.nid = '5' "); ?> makeを作成する理由のリソース</br> <?php foreach($ result as $ row){print $ row-> resourceterm; ?> <br/> <?php} '
Andrew Welch

回答:


8

これがあなたのためにうまくいくことを願っています:

 $query = db_select('node','n');
 $query->join('field_data_field_projectresources','p','p.entity_id = n.nid');
 $query->fields('n',array('yourfieldnames'))
       ->fields('p',array('yourfieldnames'))
       ->condition('n.nid','5');
 $result = $query->execute();

ここにあなたを大いに助ける別の答えがあります。

drupal.orgの「join」のドキュメントを確認してください。


1
このjoinメソッドは残念ながら連鎖可能ではないため、独自の行に配置する必要があります。
rocketeerbkw 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.