如何排除已经与其他表匹配的数据?MySQL CodeIgniter

gijlo24d  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(123)

我需要创建一个未提交成绩的报告,并获取未提交成绩的所有数据。
我有两个表:tbl_college_gradestbl_fm_college_curriculuminfo
第一个表-tbl_college_grades-提取具有等级的数据
第二个表-tbl_fm_college_curriculuminfo-获取包含所有受试者信息的数据
我需要隐藏或排除tbl_fm_college_curriculuminfo中的数据,其中tbl_college_grades已经有了。
有没有办法做到这一点?
下面是我的模型和查询,我尝试使用NOT EXISTS,但出现以下错误:
SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,以了解在“EXISTS(SELECT tbl_college_grades.subCode FROM tbl_college_grades WHERE tbl_co...”附近使用的正确语法
编码:

function report(){
    $this->db->join('tbl_college_grades','tbl_college_grades.subCode = tbl_fm_college_curriculuminfo.subjectCode','left');
    $this->db->group_by('subject');
    $this->db->where('NOT EXISTS(SELECT tbl_college_grades.subCode FROM tbl_college_grades WHERE tbl_college_grades.subCode = tbl_fm_college_curriculuminfo.subjectCode)');
    $query = $this->db->get('tbl_fm_college_curriculuminfo');
    return $query->result_array();
}
k2fxgqgv

k2fxgqgv1#

使用此

在SQLFiddle中预览

$this->db->group_by('tbl_fm_college_curriculuminfo.subject');使用适当的表来进行主题。我假设它被放置在tbl_fm_college_curriculuminfo

function report(){
    $this->db->select('tbl_fm_college_curriculuminfo.*');
    $this->db->from('tbl_fm_college_curriculuminfo');
    $this->db->join('tbl_college_grades', 'tbl_college_grades.subCode = tbl_fm_college_curriculuminfo.subjectCode', 'left');
    $this->db->where('NOT EXISTS (Select tbl_fm_college_curriculuminfo.subjectCode from tbl_college_grades WHERE tbl_college_grades.subCode = tbl_fm_college_curriculuminfo.subjectCode');
    $this->db->group_by('tbl_fm_college_curriculuminfo.subject');
    $query = $this->db->get();
}

group_by总是最后出现(在数据获取->get()之前)

相关问题