繁体   English   中英

我无法查询

[英]I can't make a query

我正在尝试查询,但没有显示任何结果。 我的表是:

TABLE teacher_student_conn:
    id, teacher_id, student_id, created_at
TABLE users:
    user_id, username, password, school_id, class, division, role_id, deactivated_at
TABLE schools:
    school_id, school_name

我只想向我展示这些在老师学校中的学生,而他没有教他们-我从$this->uri->segment(3) adn学校中的老师-从$this->uri->segment(4) 它必须显示这些学生,因为管理员可以将他们添加到老师中。 我完全不知道如何向我展示这些在老师学校里的学生,而他没有教他们。 我对查询的尝试是:

  public function select_students() { $this->db->select('users.user_id, users.username, users.school_id, users.class, users.division, users.role_id, schools.school_name, schools.region,class_divisions.division'); $this->db->from('users'); $this->db->join('teacher_student_conn','teacher_student_conn.student_id=users.user_id','left'); $this->db->join('teacher_student_conn AS T','T.teacher_id=users.user_id','left'); $this->db->join('class_divisions','class_divisions.id=users.division','left'); $this->db->join('schools','schools.school_id=users.school_id','left'); $this->db->where('(users.deactivated_at = "0000-00-00 00:00:00" OR users.deactivated_at IS NULL) AND users.role_id = 1 '); $this->db->where('users.school_id', $this->uri->segment(4) ); $this->db->where('teacher_student_conn.teacher_id', $this->uri->segment(3) ); $this->db->where("teacher_student_conn.student_id IS NULL"); $result=$this->db->get(); return $result->result(); } 

回声后$ this-> db-> last_query(); 它告诉我:

 SELECT users.user_id, users.username, users.school_id, users.class, users.division, users.role_id, schools.school_name, schools.region,class_divisions.division FROM users LEFT JOIN teacher_student_conn ON teacher_student_conn.student_id=users.user_id LEFT JOIN teacher_student_conn as T ON T.teacher_id=users.user_id LEFT JOIN class_divisions ON class_divisions.id=users.division LEFT JOIN schools ON schools.school_id=users.school_id WHERE (users.deactivated_at = '0000-00-00 00:00:00' OR users.deactivated_at IS NULL) AND users.role_id = 1 AND users.school_id = 2 AND teacher_student_conn.teacher_id = 10 AND 
现在,我使用以下查询:

  public function select_students() { $query=("SELECT users.user_id, users.username, users.school_id, users.class, users.division, users.role_id, schools.school_name, schools.region,class_divisions.division FROM users LEFT JOIN teacher_student_conn ON teacher_student_conn.student_id=users.user_id LEFT JOIN teacher_student_conn as T ON T.teacher_id=users.user_id LEFT JOIN class_divisions ON class_divisions.id=users.division LEFT JOIN schools ON schools.school_id=users.school_id WHERE (users.deactivated_at = '0000-00-00 00:00:00' OR users.deactivated_at IS NULL) AND users.role_id = 1 AND users.school_id = 2 "); $this->db->where('teacher_student_conn.student_id', NULL); $result = $this->db->query($query); echo $this->db->last_query(); return $result->result(); } 

我找到了解决方案:

 $teacher=$this->uri->segment(3); $query=("SELECT users.user_id, users.username, users.school_id, users.class, users.division, users.role_id, schools.school_name, schools.region,class_divisions.division FROM users LEFT JOIN teacher_student_conn ON teacher_student_conn.student_id=users.user_id AND teacher_student_conn.teacher_id = $teacher LEFT JOIN teacher_student_conn as T ON T.teacher_id=users.user_id LEFT JOIN class_divisions ON class_divisions.id=users.division LEFT JOIN schools ON schools.school_id=users.school_id WHERE (users.deactivated_at = '0000-00-00 00:00:00' OR users.deactivated_at IS NULL) AND users.role_id = 1 AND users.school_id = 2 AND teacher_student_conn.student_id IS NULL"); $result = $this->db->query($query); echo $this->db->last_query(); return $result->result(); } 

这只是sql查询格式打印查询并粘贴到PHPmyadmin SQL或echo $ this-> db-> last_query();。

public function select_students() {

         $query = "SELECT users.user_id, users.username, users.school_id, users.class, users.division, users.role_id, schools.school_name, schools.region,class_divisions.division FROM users"
                 . "LEFT JOIN teacher_student_conn ON teacher_student_conn.student_id=users.user_id"
                 . "LEFT JOIN teacher_student_conn as T ON T.teacher_id=users.user_id"
                 . "LEFT JOIN class_divisions ON class_divisions.id=users.division"
                 . "LEFT JOIN schools ON schools.school_id=users.school_id"
                 . "WHERE (users.deactivated_at = '0000-00-00 00:00:00' OR users.deactivated_at IS NULL) AND users.role_id = 1 AND "
                 . "users.school_id = ".$this->uri->segment(4)." AND teacher_student_conn.teacher_id = ".$this->uri->segment(4)." AND teacher_student_conn.student_id IS NULL";
        $result = $this->db->query($query);

        return $result->result();             
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM