2012-02-03 34 views
-1

我怎样才能更换下面MySQL查询ZF Zend_Paginator_Adapter_DbSelect() 查询如何利用连接在Zend_Paginator_Adapter_DbSelect()

$sql = "SELECT ps.phone_service_id,ps.phone_service_name,ps.phone_service_Duration,ps.phone_service_type,us.user_preferences_value,ps.user_id FROM phone_service ps,user_preferences us 
    WHERE us.phone_service_id = ps.phone_service_id 
    AND us.user_preferences_name = 'is_user_package_active' 
    AND ps.user_id =".$user_id; 

我写这一个,但发生错误请你代替我的查询equailent Zend_Paginator_Adapter_DbSelect()

$select = $DB->select() 
       ->from(array('ps' => 'phone_service' 
          'us' => 'user_preferences'), 
       array('ps.phone_service_id', 'ps.phone_service_name','ps.phone_service_Duration','ps.phone_service_type','us.user_preferences_value')), 
       ->where('us.phone_service_id = ?', 'ps.phone_service_id') 
       ->where('us.user_preferences_name = ?', 'is_user_package_active') 
       ->where('us.user_id = ?', $user_id) 
       ; 

回答

1

我想你想是这样的:

$sel = $db->select(); 
$sel->from(array('p' => 'phone_service')) 
    ->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id') 
    ->where('u.user_preferences_name = ?', 'is_user_package_active') 
    ->where('p.user_id = ?', $user_id); 
+0

我只需要phone_service_id,phone_service_name,phone_service_Duration,phone_service_type,user_id,phone_service(表)和user_preferences(表)中的user_preferences_value, – 2012-02-03 12:19:57

+0

简而言之,我希望它具有优化意味着我只需要这些列而不是整个表格列 – 2012-02-03 12:31:52

+0

添加相应的列很容易。只需看一下参考手册:http://framework.zend.com/manual/en/zend.db.select.html#zend.db.select.building.columns – dbrumann 2012-02-03 20:53:10