子查询无法查出数据

浏览:959 发布日期:2016/12/15
5.0.0 - 严重 - 已处理
第一种写法:$subQuery = DB::name('user_field_dict')
            ->field('field_id')
            ->where('field_id|parent_field', $fieldID)
            ->buildSql();

        $where = ['is_show' => 1,
            'user_status' => ['neq', 0],
            'user_list.type_id' => $typeID,
            'field_id' => ['in', $subQuery]];

        $userList= Db::view('user_list', 'user_name,real_name')
->view('unit_list', 'unit_name', 'user_list.unit_id=unit_list.unit_id', 'LEFT')
->view('user_title_dict', 'title_name', 'user_list.title_id=user_title_dict.title_id', 'LEFT')
            ->where($where)
            ->order('convert(real_name using gbk) asc')
            ->select();          //两种写法的不同处
        dump($userList);
输出的结果为null
而不直接select,改成buildSql(见第二种写法),再query时就可以查出结果,如下:
第二种写法:$subQuery = DB::name('user_field_dict')
            ->field('field_id')
            ->where('field_id|parent_field', $fieldID)
            ->buildSql();

        $where = ['is_show' => 1,
            'user_status' => ['neq', 0],
            'user_list.type_id' => $typeID,
            'field_id' => ['in', $subQuery]];

        $query = Db::view('user_list', 'user_name,real_name')
 ->view('unit_list', 'unit_name', 'user_list.unit_id=unit_list.unit_id', 'LEFT')
 ->view('user_title_dict', 'title_name', 'user_list.title_id=user_title_dict.title_id', 'LEFT')
            ->where($where)
            ->order('convert(real_name using gbk) asc')
            ->buildSql();          //两种写法的不同处
        $userList = Db::query($query);
        dump($userList);
看了调试生成的sql语句两次生成的语句都一样没有错误,在数据库执行也能正常查出结果,但第一种写法就是输出不了结果
thinkphp版本ThinkPHP5.0.2完整版
请问是版本bug还是我的写法有问题
评论()
后面还有条评论,点击查看>>