2015-10-05 101 views
0

我在drupal中創建多連接mysql查詢時遇到問題。這裏是我的代碼:Drupal多連接查詢

if ($params['mobile_app']) { 
    if (isset($params['mobile_app_date'])) { 
    $query->join('field_data_field_on_mobile_app', 'm', 'm.entity_id = n.nid'); 
    $query->join('field_data_field_mobile_app_date', 'm', 'm.entity_id = n.nid'); 
    $query 
     ->condition('m.field_on_mobile_app_value', 1) 
     ->condition('m.field_mobile_app_date_value', dosomething_helpers_convert_date($params['mobile_app_date']), '<=') 
     ->condition('m.field_mobile_app_date_value2', dosomething_helpers_convert_date($params['mobile_app_date']), '>='); 
    } else { 
    $query->join('field_data_field_on_mobile_app', 'm', 'm.entity_id = n.nid'); 
    $query->condition('m.field_on_mobile_app_value', 1); 
    } 
} 

我得到這個錯誤:

"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'm.field_mobile_app_date_value' in 'where clause'" 

這很有趣,但因爲分開的時候,查詢做工精細。只是當我嘗試將它們結合起來時,它就打破了。任何人都知道我在做什麼錯了?

單獨的查詢(作品):

  • mobile_app = 1
  • mobile_app_date = 2015年10月1日

組合(不工作):??

  • ?mobile_app = 1 & mobile_app_date = 2015-10-01

回答

1

只是想通了!我在第二個查詢中將'm'更改爲'mad',因此它們不一樣。

+0

是的,表別名有問題,您不能將相同的別名分配給兩個不同的表。無論如何,恭喜你自己解決問題。希望你的麻煩結束。 –

+0

謝謝@ sourdrup2012! – chloealee