繁体   English   中英

我如何将表与第二个表的最新记录连接

[英]How can i join table with second table latest record

我有两个表,如注册表和Academicdetails表,根据注册ID我在学术表中有两个记录,但我想加入最新的学术表记录。

查询:

SELECT a.*, b.status AS ac_status 
FROM registration AS a 
LEFT JOIN academicdetails AS b ON a.id = b.registration_id 
WHERE b.status = '1' 
ORDER BY id DESC 
LIMIT 100

PHP代码:

if(isset($search['category']) && $search['category']!=''){
         $condition = ', TIMESTAMPDIFF(YEAR, a.dob, CURDATE()) AS age';
    }

    $this->db->select('a.*,b.status as ac_status'.$condition);
    $this->db->from("registration as a");
    $this->db->join('academicdetails as b','a.id = b.registration_id','left');
    if(isset($search['search_by_name']) && $search['search_by_name']!=''){
         $this->db->where('a.name', $search['search_by_name']);
    }
    if(isset($search['gender']) && $search['gender']!=''){
         $this->db->where('a.gender', $search['gender']);
    }

    if(isset($search['status']) && $search['status']!=''){
            $this->db->where('b.status', $search['status']);
    }

    if(isset($search['category']) && $search['category']!=''){
         if($search['category']=='Youth'){
          $this->db->where('age>10 AND age<18');
         }elseif($search['category']=='Junior'){
          $this->db->where('age>17 AND age<22');
         }elseif($search['category']=='Senior'){
          $this->db->where('age > 21');
         }
    }

    if(isset($search['course']) && $search['course']!=''){
         $this->db->where('b.course', $search['course']);
    }

    $this->db->limit($search['limit'], $search['start']);
    $this->db->order_by($this->id, $this->order);
    $this->db->group_by('a.id');
    $query = $this->db->get();

请尝试以下查询:

SELECT * FROM `registration` LEFT JOIN academicdetails on registration.id = academicdetails.id ORDER BY academicdetails.id desc LIMIT 100;

尝试这个:-

$this->db->select("a.*, b.status AS ac_status");
$this->db->from('registration AS a');
$this->db->join('academicdetails AS b', 'b.registration_id = a.id', 'left');
$this->db->where("b.status",1);
$this->db->order_by("b.id","DESC");//primary key or id of your academic table.
$this->db->limit(100);
$this->db->get();

暂无
暂无

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

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