Drupal db_select(),如何在条件下使用两个db字段?

Drupal db_select(),如何在条件下使用两个db字段?,drupal,select,conditional-statements,Drupal,Select,Conditional Statements,我对drupal db_select有问题 这是我的密码: $query = db_select('node', 'n'); $query->addField('n', 'nid', 'nid'); $query->addField('cfs', 'entity_id', 'feature_support_id'); $query->addField('fpffs', 'entity_id', 'parent_feature_support_id

我对drupal db_select有问题

这是我的密码:

    $query = db_select('node', 'n');
    $query->addField('n', 'nid', 'nid');
    $query->addField('cfs', 'entity_id', 'feature_support_id');
    $query->addField('fpffs', 'entity_id', 'parent_feature_support_id');
    $query->addField('cfsfc', 'feature_support_compared_target_id', 'feature_support_compared');
    $query->addField('fpffsfc', 'feature_support_compared_target_id', 'parent_feature_support_compared');
    //Get feature_support of the feature
    $query->join('field_data_feature_support_feature', 'cfs', 'n.nid = cfs.feature_support_feature_target_id');
    $query->join('field_data_feature_support_compared', 'cfsfc', 'cfs.entity_id = cfsfc.entity_id');
    //Get parent feature_support through feature
    $query->join('field_data_feature_parent_feature', 'fp', 'n.nid = fp.entity_id');
    $query->join('field_data_feature_support_feature', 'fpffs', 'fp.feature_parent_feature_target_id = fpffs.feature_support_feature_target_id');
    $query->join('field_data_feature_support_compared', 'fpffsfc', 'fpffs.entity_id = fpffsfc.entity_id');
    $query->condition('n.nid', $node_revision->nid, '=');
    $query->condition('cfsfc.feature_support_compared_target_id', 'fpffsfc.feature_support_compared_target_id', '=');
    $result = $query->execute();
在DB中,我的请求应该是

SELECT n.nid AS nid, cfs.entity_id AS feature_support_id, fpffs.entity_id AS parent_feature_support_id, cfsfc.feature_support_compared_target_id AS feature_support_compared, fpffsfc.feature_support_compared_target_id AS parent_feature_support_compared
FROM node n
INNER JOIN field_data_feature_support_feature cfs ON n.nid = cfs.feature_support_feature_target_id
INNER JOIN field_data_feature_support_compared cfsfc ON cfs.entity_id = cfsfc.entity_id
INNER JOIN field_data_feature_parent_feature fp ON n.nid = fp.entity_id
INNER JOIN field_data_feature_support_feature fpffs ON fp.feature_parent_feature_target_id = fpffs.feature_support_feature_target_id
INNER JOIN field_data_feature_support_compared fpffsfc ON fpffs.entity_id = fpffsfc.entity_id
WHERE  (n.nid = '9') AND (cfsfc.feature_support_compared_target_id = fpffsfc.feature_support_compared_target_id)
当我在phpmyadmin中尝试此请求时,它可以工作,但在mysql日志中却可以

SELECT n.nid AS nid, cfs.entity_id AS feature_support_id, fpffs.entity_id AS parent_feature_support_id, cfsfc.feature_support_compared_target_id AS feature_support_compared, fpffsfc.feature_support_compared_target_id AS parent_feature_support_compared
FROM node n
INNER JOIN field_data_feature_support_feature cfs ON n.nid = cfs.feature_support_feature_target_id
INNER JOIN field_data_feature_support_compared cfsfc ON cfs.entity_id = cfsfc.entity_id
INNER JOIN field_data_feature_parent_feature fp ON n.nid = fp.entity_id
INNER JOIN field_data_feature_support_feature fpffs ON fp.feature_parent_feature_target_id = fpffs.feature_support_feature_target_id
INNER JOIN field_data_feature_support_compared fpffsfc ON fpffs.entity_id = fpffsfc.entity_id
WHERE  (n.nid = '9') AND (cfsfc.feature_support_compared_target_id = 'fpffsfc.feature_support_compared_target_id')
请参见结尾,在WHERE中,关于“fpffsfc.feature\u support\u comparated\u target\u id”有一个单引号,不应该出现

这显然是因为->条件的第二个参数似乎只是接受变量。有人知道我如何用db_select创建两个db字段的条件吗

谢谢你给我带来的任何帮助。

使用$query->where($snippet,$args=array())

你可能在找
$query->where('cfsfc.feature_support_compared_target_id = fpffsfc.feature_support_compared_target_id');