连接三个表-mysql

joining three tables-mysql

基本上我有三个 table 命名为 class,房间,hostel.this 是我的 tables

class

id  name          daily_rent    mon_rent    facilities
11  reservation     200          3000      reservation
23  per1            100          1000        per1
24  per2            100          1000        per2
25  pamba1          100          1000        pamba1
26  pamba2          100          1000        pamba2

我的 table 房间看起来像这样

    id  rm_number  capacity     bed_no                   class  hostel  is_vaccant
    34  1            5        1A,1B,1C,1D,1E               23     7      1
    35  2            4        2A,2B,2C,2D                  24     7      1
    36  3            4        3A,3B,3C,3D                  25     10     0
    37  4            6        4A,4B,4C,4D,4E,4F            26     10     0
    38  5            3        5A,5B,5C                     23     7      1
    39  6            8        6A,6B,6C,6D,6E,6F,6G,6H      25     10     1

我的宿舍table看起来像这样

    id  user_id     name    type    place   address          phone    username      password
    7   78         periyar  Girls   tirur   malappuram                 periyar  periyarhostel
    10  81         pamba    Boys    tirur   malappuram  04942569878     pamba   pambahostel

当我这样使用我的代码时

控制器

    public function view_vaccancy()
    {
       $data['active_mn'] = 'view_vaccancy';
       if( ! $this->ion_auth->logged_in() || !$this->ion_auth->is_admin())
         {
          redirect('login');
         }      

    $data['class'] = $this->admin_model->get_all_vaccancy_list()->result();
    $data1=array();


    foreach ($data['class'] as $row) 
    {
        $bed = $this->admin_model->bed_by_class_admin($row->id)->row();
        $res = $this->admin_model->get_admitted_room_admin($row->id);
        $data1[] = $bed->capacity-$res;
    }
    $data['available'] = $data1;

    $data['bed'] = $bed = $this->admin_model->bed_by_class_admin($row->id)->row();

    $data['form_url'] = ''; 
    $data['plc_hold'] = 'Name / ID'; 
    $this->load->view('admin/view_vaccancy',$data);
}

我的模型是这样的

public function get_all_vaccancy_list()
{
    $this->db->select('class.*,rooms.class,hostel.name as h_name');
    $this->db->join('rooms','class.id=rooms.class','left outer');
    $this->db->join('hostel','hostel.id=rooms.hostel');
    $query=$this->db->get('class');
    return $query;


}

我得到这样的输出

SI no   Hostel    Class     Total Seat  No. of Vaccancy
  1     periyar   per1         12       8
  2     periyar   per2         12       4
  3     pamba     pamba1       12       8
  4     pamba     pamba2       12       2
  5     periyar   per1         12       8
  6     pamba     pamba1       12       8

但我应该像这样得到它

 SI no  Hostel    Class     Total Seat  No. of Vaccancy
  1     periyar   per1         12           8
  2     periyar   per2         12           4
  3     pamba     pamba1       12           8
  4     pamba     pamba2       12           2

我的问题出在模型上,任何猜测都可以解决这个问题,在此先感谢

你需要分组。

$this->db->group_by('hostel, class');