2011-06-17 69 views
1

我是新來的Zend Framework獲得特定列,如何在Zend中使用LEFT JOIN

以下是簡單的MySQL查詢這需要從表中的特定列,

SELECT jobs_users.id,jobs_users.first_name from jobs_users left join friends on jobs_users.id=friends.friend_id where friends.member_id=29 

我與Zend試圖執行上面的查詢如下,

public function getFriendsProfileList($id){ 

      $db = Zend_Db_Table::getDefaultAdapter(); 

$select = $db->select(); 
$select->from('jobs_users') 
     ->joinLeft(
       'friends', 
       'jobs_users.id=friends.friend_id', 
       array('jobs_users.id','jobs_users.first_name','jobs_users.last_name','jobs_users.photo') 
       ) 
     ->where("friends.member_id = ?", $id); 
$result = $db->fetchAll($select); 
return $result; 

    } 

這裏我得到的結果與所有列名稱,而不是與我在查詢中給出的確切的列名稱。

請幫助我。

+0

多少列你在一排現在越來越和你要多少得到? – NAVEED 2011-06-17 05:53:22

+0

@NAVEED我得到預期的結果與所有行jobs_users.But我只想'jobs_users.id','jobs_users.first_name','jobs_users.last_name','jobs_users.photo'這些列 – mymotherland 2011-06-17 06:04:10

+0

@NAVEED我得到它的工作現在通過設置$ select-> from('jobs_users','') – mymotherland 2011-06-17 06:10:15

回答

1

使用這個代替:

$select->from('jobs_users', array('jobs_users.id','jobs_users.first_name','jobs_users.last_name','jobs_users.photo')) 
->joinLeft('friends', 'jobs_users.id=friends.friend_id') 
->where("friends.member_id = ?", '20'); 
0

你也可以試試這個:

$select = $db->select(); 
$select->setIntegrityCheck(false); 
$select->joinLeft('jobs_users','',array('jobs_users.id','jobs_users.first_name','jobs_users.last_name','jobs_users.photo')); 
$select->joinLeft('friends','jobs_users.id=friends.friend_id', array()); 
$select->where("friends.member_id = ?", $id); 
$result = $db->fetchAll($select); 
return $result; 
+0

在查詢中沒有from子句。 – 2011-06-17 06:10:07

+0

是的。但它應該工作。我也使用這種類型的方法,它爲我工作。我編輯了我的答案。請再次查看。試試這個,告訴我是否有任何錯誤。 – NAVEED 2011-06-17 06:12:23