[英]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.