Как получить все данные из базы данных из 3 таблиц?

Моя проблема в том, что я получаю данные, которые присутствуют во всех 3 таблицах. Но я хочу отобразить данные, которых нет ни в одной из таблиц (это пустое место или 0 печатается на этом элементе, если это не так присутствует в любом из таблицы).. Я гуглил и обнаружил, что это можно сделать с помощью соединения fullouter, но я не знаю, как его использовать.. Код контроллера:

   public function St_statement(){

        $startdate = $this->input->post('SDate');
        $enddate = $this->input->post('EDate');
        $date = str_replace('/', '-', $startdate);
        $newDate = date("Y-m-d", strtotime($date));
        $date2 = str_replace('/', '-', $enddate);
        $newDate2 = date("Y-m-d", strtotime($date2));
        $data['startdate'] = $startdate;
        $data['enddate'] = $enddate;
        if ($this->input->post('all'))
        {
        $this->db->where('billdate >=', $newDate);
        $this->db->where('billdate <=', $newDate2);
        $this->db->where('billdte >=', $newDate);
        $this->db->where('billdte <=', $newDate2);
        $this->db->select("Item");
        $this->db->select("pgroup");
        $this->db->select_sum("Stock");
        $this->db->select_sum("quantity");
        $this->db->select_sum("Qty");
        $this->db->from('opstock');
        $this->db->group_by("Item");
        $this->db->order_by("pgroup",'asc');

        $this->db->join('purchaseitem',' purchaseitem.Prdtname = opstock.Item','OUTER');
         $this->db->join('salesitem','salesitem.Prdtname =  purchaseitem.Prdtname','OUTER');
          $this->db->join('itemmaster','itemmaster.itemname =  purchaseitem.Prdtname','OUTER');
         $this->db->join('pgroup','pgroup.pgroupid = itemmaster.catcode','OUTER');

        $query = $this->db->get();
  $data['query'] = $query;

        $this->load->view('Inventory/St_Stmt', $data);
        //$this->load->view('Inventory/St_Stmt1', $data);
    }
    if($this->input->post('selected'))
    {
        if($name = $this->input->post('businessType'))
        {
        $this->db->where('billdate >=', $newDate);
        $this->db->where('billdate <=', $newDate2);
        $this->db->where('billdte >=', $newDate);
        $this->db->where('billdte <=', $newDate2);
        $this->db->where('pgroup',$name);
        $this->db->select("Item");
        $this->db->select("pgroup");
        $this->db->select_sum("Stock");
        $this->db->select_sum("quantity");
        $this->db->select_sum("Qty");
        $this->db->from('opstock');
        $this->db->group_by("Item");

        $this->db->join('purchaseitem',' purchaseitem.Prdtname = opstock.Item','OUTER');
         $this->db->join('salesitem','salesitem.Prdtname =  purchaseitem.Prdtname','OUTER');
          $this->db->join('itemmaster','itemmaster.itemname =  purchaseitem.Prdtname','OUTER');
         $this->db->join('pgroup','pgroup.pgroupid = itemmaster.catcode','OUTER');

        $query = $this->db->get();
  $data['query'] = $query;

        $this->load->view('Inventory/St_Stmt', $data);


    }

}
}

1 ответ

$ query = "SELECT Item, pgroup, Сум (Stock) КАК Stock, Сум (quantity) КАК quantity, Сум (Qty) КАК Qty ОТ opstock ЛЕВЫЙ РЕЙТИНГ purchaseitem НА purchaseitem,Prdtname знак равно opstock,Item ЛЕВЫЙ РЕЙТИНГ salesitem НА salesitem,Prdtname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ itemmaster НА itemmaster,itemname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ pgroup НА pgroup,pgroupid знак равно itemmaster,catcode ГДЕ billdate > = '". $ newDate."' AND billdate <= '". $ newDate2."' AND billdte > = '". $ newDate."' AND billdte <= '". $ newDate2."' GROUP BY Item СОРТИРОВАТЬ ПО pgroup ASC UNION SELECT Item, pgroup, Сум (Stock) КАК Stock, Сум (quantity) КАК quantity, Сум (Qty) КАК Qty ОТ opstock ПРАВИЛЬНОЕ СОЕДИНЕНИЕ purchaseitem НА purchaseitem,Prdtname знак равно opstock,Item ЛЕВЫЙ РЕЙТИНГ salesitem НА salesitem,Prdtname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ itemmaster НА itemmaster,itemname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ pgroup НА pgroup,pgroupid знак равно itemmaster,catcode ГДЕ billdate > = '". $ newDate."' AND billdate <= '". $ newDate2."' AND billdte > = '". $ newDate."' AND billdte <= '". $ newDate2."' GROUP BY Item СОРТИРОВАТЬ ПО pgroup ASC SELECT Item, pgroup, Сум (Stock) КАК Stock, Сум (quantity) КАК quantity, Сум (Qty) КАК Qty ОТ opstock ЛЕВЫЙ РЕЙТИНГ purchaseitem НА purchaseitem,Prdtname знак равно opstock,Item ПРАВИЛЬНОЕ СОЕДИНЕНИЕ salesitem НА salesitem,Prdtname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ itemmaster НА itemmaster,itemname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ pgroup НА pgroup,pgroupid знак равно itemmaster,catcode ГДЕ billdate > = '". $ newDate."' AND billdate <= '". $ newDate2."' AND billdte > = '". $ newDate."' AND billdte <= '". $ newDate2."' GROUP BY Item СОРТИРОВАТЬ ПО pgroup ASC UNION SELECT Item, pgroup, Сум (Stock) КАК Stock, Сум (quantity) КАК quantity, Сум (Qty) КАК Qty ОТ opstock ЛЕВЫЙ РЕЙТИНГ purchaseitem НА purchaseitem,Prdtname знак равно opstock,Item ЛЕВЫЙ РЕЙТИНГ salesitem НА salesitem,Prdtname знак равно purchaseitem,Prdtname ПРАВИЛЬНОЕ СОЕДИНЕНИЕ itemmaster НА itemmaster,itemname знак равно purchaseitem,Prdtname ЛЕВЫЙ РЕЙТИНГ pgroup НА pgroup,pgroupid знак равно itemmaster,catcode ГДЕ billdate > = '". $ newDate."' AND billdate <= '". $ newDate2."' AND billdte > = '". $ newDate."' AND billdte <= '". $ newDate2."' GROUP BY Item СОРТИРОВАТЬ ПО pgroup ASC ";

$ query = $ this-> db-> query ($ query);

Другие вопросы по тегам