zend子查询不起作用

时间:2016-02-11 11:31:08

标签: php mysql zend-framework2

我在查询中使用zend表达式。 这是我的疑问。

    $oResultSet = $this->select(function (Select $select) use ($aWhere, $sGroup) {
        $select->columns(array('next_level_name' => new Expression("SELECT level_title from mry_game_sublevel WHERE sub_level = mry_game_sublevel.next_level LIMIT 1")));

        //$select->columns(array('count' => new \Zend\Db\Sql\Expression('COUNT(*)')));

        $select ->join(
            'mry_game_main_level',
            'mry_game_sublevel.main_level_id = mry_game_main_level.main_level_id' ,
            array('main_level','level_name'),
            $select::JOIN_LEFT
        );
        if ($aWhere) {
            foreach ($aWhere as $key => $value) {
                $select->where($key.$value);
            }
        }
        if ($sGroup) {
            $select->group($sGroup);
        }          
    });

    return ! $oResultSet ? false : $oResultSet->toArray();

但是我收到了一条错误消息。

我的mysql查询就像这样

select ee.main_level_id, 
(select sub_level from mry_game_sublevel where next_unlock = ee.sub_level) as dddd
from mry_game_sublevel as ee where ee.sub_level = 1.2

错误消息:

  

无法执行语句(42000 - 1064 - 您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在mry_game_sublevel WHERE sub_level =附近使用正确的语法以使用SELECT level_title mry_game_sublevel.ne'在第1行)

有谁知道这是什么问题?

0 个答案:

没有答案