web-dev-qa-db-ja.com

SQLクエリでノードコンテンツを取得する方法

D6では、ノードテーブルにはノードのタイトルしかありません。特定のノードの本体(コンテンツ)を取得するためにデータベースをクエリする方法は?

更新:コンテンツの本文がnode_revisionsテーブルに格納されていることがわかりました。

3
alfish

Drupal 7

Drupal 7では、7つの本文コンテンツがfield_data_bodyおよびfield_revision_bodyテーブルに保存されます。

したがって、タイトルと本文を取得するクエリの例は次のようになります。

SELECT title, r.body_value, n.changed FROM node n LEFT JOIN field_data_body r ON n.nid = r.entity_id AND n.vid = r.revision_id

Drush経由でクエリを実行するには、上記のクエリの後にdrush sqlqを実行します。

5
kenorb

教育目的のために、これはD6ビューが生成するSQLです(SQLプレビューによると)。

この特定のノードは、ノードID 1を持つノードです。

SELECT node_revisions.body AS node_revisions_body,
       node_revisions.format AS node_revisions_format
FROM node node
LEFT JOIN node_revisions node_revisions 
ON node.vid = node_revisions.vid 
WHERE node.nid = 1

ただし、モジュールでは、保守性とセキュリティのためにdb_query()などの適切なメソッドを使用する必要があります。

3