[英]how to get all the data from database from 3 tables?
我的问题是,我正在获取所有 3 个表中都存在的数据。出现在表中的任何人中)。我用谷歌搜索,发现它可以通过 fullouter join 来完成,但我不知道如何使用它。控制器代码:
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);
}
}
}
$查询=“选择Item
, pgroup
,SUM( Stock
)AS Stock
,SUM( quantity
)AS quantity
,SUM( Qty
)AS Qty
FROM opstock
LEFT JOIN purchaseitem
ON purchaseitem
。 Prdtname
= opstock
。 Item
LEFT JOIN salesitem
ON salesitem
。 Prdtname
= purchaseitem
。 Prdtname
LEFT JOIN itemmaster
ON itemmaster
。 itemname
= purchaseitem
。 Prdtname
LEFT JOIN pgroup
ON pgroup
。 pgroupid
= itemmaster
。 catcode
WHERE billdate
> = ' “$ newDate。”' AND billdate
<= ' “$ newDate2。”' AND billdte
> = ' “$ newDate。”' AND billdte
<= ' “$ newDate2。”' GROUP BY Item
ORDER BY pgroup
ASC UNION SELECT Item
, pgroup
,SUM( Stock
)AS Stock
,SUM( quantity
)AS quantity
, SUM( Qty
)AS Qty
FROM opstock
RIGHT JOIN purchaseitem
ON purchaseitem
。 Prdtname
= opstock
。 Item
LEFT JOIN salesitem
ON salesitem
。 Prdtname
= purchaseitem
。 Prdtname
LEFT JOIN itemmaster
ON itemmaster
。 itemname
= purchaseitem
。 Prdtname
LEFT JOIN pgroup
ON pgroup
。 pgroupid
= itemmaster
。 catcode
WHERE billdate
> = ' “$ newDate。”' AND billdate
<= ' “$ newDate2。”' AN d billdte
> = ' “$ newDate。”' AND billdte
<= ' “$ newDate2。”' GROUP BY Item
ORDER BY pgroup
ASC SELECT Item
, pgroup
,SUM( Stock
)AS Stock
,SUM( quantity
)AS quantity
, SUM( Qty
) AS Qty
FROM opstock
LEFT JOIN purchaseitem
ON purchaseitem
。 Prdtname
= opstock
。 Item
RIGHT JOIN salesitem
ON salesitem
。 Prdtname
= purchaseitem
。 Prdtname
LEFT JOIN itemmaster
ON itemmaster
。 itemname
= purchaseitem
。 Prdtname
LEFT JOIN pgroup
ON pgroup
。 pgroupid
= itemmaster
。 catcode
WHERE billdate
> = ' “$ newDate。”' AND billdate
<= ' “$ newDate2。”' AND billdte
> = ' “$ newDate。”' AND billdte
<= ' “$ newDate2。”'基团BY Item
ORDER BY pgroup
ASC UNION SELECT Item
, pgroup
,SUM( Stock
)AS Stock
,SUM( quantity
)AS quantity
,SUM( Qty
)AS Qty
FROM opstock
LEFT JOIN purchaseitem
ON purchaseitem
。 Prdtname
= opstock
。 Item
LEFT JOIN salesitem
ON salesitem
。 Prdtname
= purchaseitem
。 Prdtname
RIGHT JOIN itemmaster
ON itemmaster
。 itemname
= purchaseitem
。 Prdtname
LEFT JOIN pgroup
ON pgroup
。 pgroupid
= itemmaster
。 catcode
WHERE billdate
> = ' “$ newDate。”' AND billdate
<= ' “$ newDate2。”' AND billdte
> = ' “$ newDate。”' AND billdte
<= ' “$ newDate2。”'基团BY Item
ORDER BY pgroup
ASC";
$query = $this->db->query($query);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.