2012-07-16 85 views
0

我有這個測試查詢工作正常:翻譯此SQL語句Zend_Db_Table類

select `name` from `Role` as rl, `UserRole` as ur 
WHERE rl.id = ur.roleId AND ur.userId = '1' 

結果:'test'

我試圖用Zend_Table做同樣的事情,但我似乎在做它錯了。下面介紹一下我是在:

$usrRole = new Schema_UserRole(array ('db' => $db)); 
$role = new Schema_Role(array ('db' => $db)); 
$select = $role->select(); 
$select 
    ->setIntegrityCheck(false) 
    ->from(array ('rl' => $role)) 
    ->join(array ('ur' => $usrRole), 'rl.id = ur.roleId') 
    ->where('ur.userId = ?', '1'); 
$rowset = $role->fetchRow($select); 
$out = $rowset->toArray(); 

結果:''

謝謝!

回答

0

我發現它,它似乎需要一個字符串的第一個參數join

$select 
    ->setIntegrityCheck(false) 
    ->from($role, array('name')) 
    ->joinLeft('UserRole', 'Role.id = UserRole.roleId', '') 
    ->where('UserRole.userId = ?', '1');