2015-11-12 18:05:50 2450次浏览 1条回答 0 悬赏 10 金钱
select u.userID from  se_classMembers m 
INNER JOIN  se_class c on c.classID=m.classID
INNER JOIN se_userinfo u on u.UserID=m.userID
where (m.identity='20401' or m.identity='20402') and c.gradeID='1008'
and m.userID>0 
and u.subjectID=10010 
and u.textbookVersion=20601
  • 回答于 2015-11-17 11:37 举报

    Model

    
    public function getSe_class()
    {
         return $this->hasOne(Se_class::classname(), ['classID' => 'classID']);
    }
    
    public function getSe_userinfo()
    {
         return $this->hasOne(Se_userinfo::classname(), ['UserID' => 'UserID']);
    } 
    
    

    Controller

    
    use app\models\se_classMembers;
    
    $query = se_classMembers::find()
    ->select(['se_classMembers.userID'])
    ->joinWith('se_class',true,'INNER JOIN')
    ->joinWith('se_userinfo',true,'INNER JOIN')
    ->where(['or', ['se_classMembers.identity' => '20401'], ['se_classMembers.identity' => '20402']])
    ->andwhere(['se_class.gradeID' => '1008'])
    ->andwhere(['>','se_classMembers.userID',0])
    ->andwhere(['se_userinfo.subjectID' => 10010])
    ->andwhere(['se_userinfo.textbookVersion' => 20601])
    ->createCommand()->RawSql;
    
    var_dump($qurey);
    
    
    3 条回复
    回复于 2015-11-17 11:41 回复

    你試試看 有錯的話在稍微改一下應該可以!!

    回复于 2015-11-18 16:31 回复

    我先试一下,看看行不行。
    我是用这种方式处理的
    $usersInfo = SeUserinfo::findBySql(
    "select u.userID from se_classMembers m INNER JOIN se_class c on c.classID=m.classID ".
    "INNER JOIN se_userinfo u on u.UserID=m.userID ".
    "where (m.identity='20401' or m.identity='20402') and c.gradeID=:gradeID ".
    "and m.userID>0 and u.subjectID=:subjectID and u.textbookVersion=:version",[':gradeID'=>$gradeId,':subjectID'=>$subjectId,':version'=>$versionId])->all();

    回复于 2015-11-18 16:34 回复

    11111

您需要登录后才可以回答。登录 | 立即注册
冰恋冬
总监

冰恋冬

注册时间:2015-07-30
最后登录:2020-09-01
在线时长:21小时14分
  • 粉丝3
  • 金钱4385
  • 威望10
  • 积分4695

热门问题