Php 使用codeigniter从两个表中获取记录,其中所有匹配的记录都来自第一个表
我有两张桌子:Php 使用codeigniter从两个表中获取记录,其中所有匹配的记录都来自第一个表,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有两张桌子: 学生[身份证,学生姓名,学校,投标,…] 出席人数[id、sid、投标、出席日期,…] sid:学生id 投标:批次id 我正试图从同一批学生的表和同一特定日期的考勤中获取记录 但是我得到了学生的记录/名单,他们的id在出勤中可用 学生表: 出席人数表: 在这两种情况下,我只得到两张记录。我期待3个学生名单 SELECT * FROM students s LEFT OUTER JOIN attendance a ON s.id = a.sid WHERE s.bid=1 A
投标:批次id 我正试图从同一批学生的
表和同一特定日期的考勤中获取记录
但是我得到了学生的记录/名单,他们的id
在出勤中可用
学生表:
出席人数表:
在这两种情况下,我只得到两张记录。我期待3个学生名单
SELECT * FROM students s LEFT OUTER JOIN attendance a ON s.id = a.sid WHERE s.bid=1 AND a.attenDate='2017-03-18'
$condition = ['s.bid'=>$bid,'a.attenDate'=>$adate];
$listattend = $this->db->select('*')
->from('students s')
->join('attendance a', 's.id = a.sid', 'right outer')
->where($condition)
->get();
return $listattend->result();
试试这个
SELECT a.*,s* FROM attendance a LEFT JOIN students s ON a.sid = s.id AND a.bid=s.bid WHERE DATE(a.date) = "2017-02-05"
在中添加表结构和数据question@Rafiq我添加了有问题的表图像和数据,但从图像中获取表和数据需要时间。所以,若您添加有问题的表结构和数据,或者在中添加数据,以便尽早解决问题,那个就更好了。谢谢Attentidate列的数据类型是什么?没有。它不工作,它给出了所有日期的所有记录。实际上这里的问题是那个日期。这是我无法解决的。我无法合并当前的数据。“其中s.bid=1,a.Attentidate='2017-03-18'”这一条