如何使用Left join获取zend中的特定列

时间:2011-06-17 05:45:09

标签: sql

我是zend框架的新手,

以下是普通的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;

    }

这里我得到的是所有列名的结果,而不是我在查询中给出的确切列名。

请帮助我。

2 个答案:

答案 0 :(得分: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');

答案 1 :(得分: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;