2016-10-04 4 views
0

entity_id에서 왼쪽으로 조인하려하지만 세부 정보없이 오류 만 수신하려고합니다.Drupal 7 select query with entity_id

드루팔 (Drupal)에서 엔티티 아이디 (entity_id)를 벗어나기위한 트릭이 있습니까?

$query = db_query('SELECT COUNT(n.field_feed_vehicle_code_value) FROM {field_data_field_feed_vehicle_code} n LEFT JOIN {field_data_field_feed_vehicle_date_used} du ON n.entity_id = du.entity_id WHERE n.field_feed_vehicle_code_value = :utilization AND du.field_feed_vehicle_date_used = :utilization_date', array(':utilization' => $fieldVehicleCode, ':utilization_date' => $fieldDVIRDate))->fetchField(); 

나는 leftjoins에 대해 이야기하는 다른 질문을 찾았지만 실제로는 entity_id에는 아무 것도 없습니다. 나는 또한이 Drupal 7 select query with joins을 발견했지만이 해결책도 작동하지 않았다.

$query = db_select('node', 'n'); 
$query->leftJoin('field_data_field_feed_vehicle_code', 'vc', 'n.nid = vc.entity_id'); 
$query->leftJoin('field_data_field_feed_vehicle_date_used', 'du', 'n.nid = du.entity_id'); 
$query 
->fields('n', array('nid')) 
->fields('vc.field_feed_vehicle_code_value', $fieldVehicleCode , '=') 
->fields('du.field_feed_vehicle_date_used', $fieldDVIRDate , '=') 
->condition('type', 'dvir_utilization_feed') 
->condition('status', 1) 
->execute(); 
$num = $query->rowCount(); 
+0

어떤 종류의 오류가 발생하지 않습니까? – Drew

+0

내가 페이지를 방문했을 때 502를 얻지 만 다른 모든 것은 잘로드됩니다. -> leftJoin ('field_data_field_feed_vehicle_code', 'VC', 'n.nid = vc.entity_id' $ 쿼리 = db_select ('노드', 'N') \t \t \t \t \t \t을 : 여기 – ImaginedDesign

답변

0

나는 내가 잘못된 필드 이름을 가진 끝내었고, db_query을해야했다 ->fields

+0

내가 노력하고 무엇인가) \t \t \t \t \t \t -> leftJoin() = n.nid du.entity_id ","뒤 ","field_data_field_feed_vehicle_date_used ' \t \t \t \t \t \t -> 필드 ('N ', 어레이 ("NID")) \t \t \t \t \t \t -> 상태 ('vc.field_feed_vehicle_code_value'$ fieldVehicleCode '=') \t \t \t \t \t \t -> 상태 ('du.field_feed_vehicle_date_used'$ fieldDVIRDate '=') \t \t \t \t \t \t -> 상태 ('n.type', 'dvir_utilization_feed' '=') \t \t \t \t \t \t -> 실행(); $ num = $ query-> rowCount(); – ImaginedDesign

0

에 대한 올바른 구문 아니므로 당신이

->condition('vc.field_feed_vehicle_code_value', $fieldVehicleCode , '=') 
->condition('du.field_feed_vehicle_date_used', $fieldDVIRDate , '=') 

을 사용하려는 생각 나는 비록 db_select를 선호했을 것입니다.

$query = db_query('SELECT COUNT(vc.field_feed_vehicle_code_value) 
            FROM {node} n 
            LEFT JOIN {field_data_field_feed_vehicle_code} vc ON n.nid = vc.entity_id 
            LEFT JOIN {field_data_field_feed_vehicle_date_used} du ON n.nid = du.entity_id 
            WHERE vc.field_feed_vehicle_code_value = :utilization 
            AND du.field_feed_vehicle_date_used_value = :utilization_date', 
            array(':utilization' => $fieldVehicleCode, ':utilization_date' => $fieldDVIRDate))->fetchField(); 


      $utilization = $query;