我在查询中使用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行)
有谁知道这是什么问题?