代码之家  ›  专栏  ›  技术社区  ›  johnjohn

将此sql语句转换为Zend_Db_Table

  •  0
  • johnjohn  · 技术社区  · 12 年前

    我有一个运行良好的测试查询:

    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();
    

    结果: ''

    谢谢

    1 回复  |  直到 12 年前
        1
  •  0
  •   johnjohn    12 年前

    我找到了它,它似乎需要的第一个参数上的字符串 join

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