使用views raw sql模块,我得到了一个视图:但是当我直接在mysql中运行查询时,应该如何转换,以便能够得到结果? {}代表什么? 我不明白应该如何改变查询,以便能够在mysql中得到结果。我的最终目标是将所有的左联接替换成内联接,这样可以提高速度,如这里所说。https:/www.silviogutierrez.comblogoptimizing-drupal-views-right-way所以我有两个问题,我应该如何改变下面的sql查询在mysql中运行,以及我如何使所有左联接下面的内部联接。
SELECT node.nid AS nid, node.language AS node_language, node_field_data_field_title.title AS node_field_data_field_title_title,
node.nid AS node_nid, 'node' AS field_data_field_circ_type_node_entity_type,
'node' AS field_data_field_circ_period_node_entity_type,
'node' AS field_data_field_active_node_entity_type, 'node' AS field_data_field_onhold_node_entity_type,
'node' AS field_data_field_item_node_entity_type, 'node' AS field_data_field_patron_node_entity_type,
'node' AS field_data_field_due_date_node_entity_typeFROM {node} nodeLEFT
JOIN {field_data_field_item} field_data_field_item ON node.nid = field_data_field_item.entity_id
AND (field_data_field_item.entity_type = 'node'
AND field_data_field_item.deleted = '0'
)LEFT
JOIN {node} node_field_data_field_item ON field_data_field_item.field_item_nid = node_field_data_field_item.nidLEFT
JOIN {field_data_field_patron} field_data_field_patron ON node.nid = field_data_field_patron.entity_id
AND (field_data_field_patron.entity_type = 'node'
AND field_data_field_patron.deleted = '0'
)LEFT
JOIN {node} node_field_data_field_patron ON field_data_field_patron.field_patron_nid = node_field_data_field_patron.nidLEFT
JOIN {og_membership} og_membership_node ON node.nid = og_membership_node.etid
AND (og_membership_node.entity_type = 'node')LEFT
JOIN {field_data_field_title} node_field_data_field_item__field_data_field_title ON node_field_data_field_item.nid = node_field_data_field_item__field_data_field_title.entity_id
AND (node_field_data_field_item__field_data_field_title.entity_type = 'node'
AND node_field_data_field_item__field_data_field_title.deleted = '0'
)LEFT
JOIN {node} node_field_data_field_title ON node_field_data_field_item__field_data_field_title.field_title_nid = node_field_data_field_title.nidWHERE (( (og_membership_node.gid = '672621' ) )AND(( (node.status = '1')
AND (node.type IN ('circulation')) ))
)ORDER BY node_nid DESC LIMIT 20 OFFSET 0
你所需要的一切在Drupal文档中都有描述。https:/www.drupal.orgdocs7apidatabase-apistatic-queries
本网站的例子。
$result = db_query("SELECT nid, title FROM {node} WHERE created > :created", array(
':created' => REQUEST_TIME - 3600,
));
在这个例子中,{node}通过添加后缀转化为真正的表名,例如,同样的规则适用于其他元素。