我尝试使用以下代码在同一DB查询中从两个数据库表中检索信息:
$query = db_select('webform_questionnaire_fieldset', 'wqf');
$query->join('webform_component', 'wc', 'wqf.cid = wc.cid');
$query->fields('wqf')
->fields('wc')
->condition('wqf.cid', $cid, '=')
->condition('wqf.nid', $nid, '=')
->condition('wqf.cid', 'wc.cid', '=')
->execute()
->fetchAll();
我得到的输出与数据库数据不相似,但看起来更像数据库 meta数据,如下所示:
SelectQuery::__set_state(array(
'fields' =>
array (
),
'expressions' =>
array (
),
'tables' =>
array (
'wqf' =>
array (
'join type' => NULL,
'table' => 'webform_questionnaire_fieldset',
'alias' => 'wqf',
'condition' => NULL,
'arguments' =>
array (
),
'all_fields' => true,
),
'wc' =>
array (
'join type' => 'INNER',
'table' => 'webform_component',
'alias' => 'wc',
'condition' => NULL,
'arguments' =>
array (
),
'all_fields' => true,
),
),
'order' =>
array (
), ......
我做错了什么?
1条答案
按热度按时间shstlldc1#
将
condition
添加到连接语句中。类似于on table1.id = table2.id
,然后添加$result = $query->execute()->fetchAll();
希望这能帮上忙...穆罕默德。