Как получить все данные из базы данных из 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);