【问题标题】:how to get all the data from database from 3 tables?如何从 3 个表中获取数据库中的所有数据?
【发布时间】:2019-04-18 13:06:27
【问题描述】:

我的问题是,我正在获取所有 3 个表中存在的数据。但我想显示任何一个表中都不存在的数据(即空白或 0 打印在该项目上如果它不存在于任何表中)..我用谷歌搜索并发现它可以通过 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);


    }

}
}

【问题讨论】:

  • 嗨。您只是要求我们编写另一个外连接演示文稿,以及一个定制教程。这个问题太笼统了。这是一个常见问题解答,因为所有其他人都在没有研究或搜索的情况下提出了问题。查找演示文稿并询问您遇到的具体问题。谷歌你的问题。如果您仍然需要询问,请阅读并在minimal reproducible example 上采取行动。你的文字也不清楚。使用足够的单词、句子和对示例部分的引用来清楚地表达你想要什么。

标签: php mysql codeigniter full-outer-join


【解决方案1】:

$query = "SELECT Item, pgroup, SUM(Stock) AS Stock, SUM(quantity) AS quantity, SUM(Qty) AS Qty FROM @ 987654331@ 左连接 purchaseitem 开启 purchaseitem.Prdtname = opstock.Item 左连接 salesitem 开启 salesitem.Prdtname = purchaseitem.Prdtname 左连接 itemmaster 开启 itemmaster.itemname = purchaseitem.Prdtname 左加入pgroup ON pgroup.pgroupid = itemmaster.catcode WHERE billdate >= '".$newDate."' AND billdate billdte >= '".$newDate."' AND billdte Item ORDER BY pgroup ASC 联盟 选择 Item, pgroup, SUM(Stock) AS Stock, SUM(quantity) AS quantity, SUM(Qty) AS Qty FROM opstock 右连接 purchaseitem 开启 purchaseitem.Prdtname = opstock.Item 左连接 salesitem 开启 salesitem.Prdtname = purchaseitem.Prdtname 左连接 itemmaster 开启 itemmaster.itemname = purchaseitem.Prdtname 左加入 pgroup ON pgroup.pgroupid = itemmaster.catcode WHERE billdate >= '".$newDate."' AND billdate billdte >= '".$newDate."' AND billdte Item ORDER BY pgroup ASC 选择 Item, pgroup, SUM(Stock) AS Stock, SUM(quantity) AS quantity, SUM(Qty) AS Qty FROM opstock 左连接 purchaseitem 开启 purchaseitem.Prdtname = opstock.Item 右连接 salesitem 开启 salesitem.Prdtname = purchaseitem.Prdtname 左连接 itemmaster 开启 itemmaster.itemname = purchaseitem.Prdtname 左加入pgroup ON pgroup.pgroupid = itemmaster.catcode WHERE billdate >= '".$newDate."' AND billdate billdte >= '".$newDate."' AND billdte Item ORDER BY pgroup ASC 联盟 选择 Item, pgroup, SUM(Stock) AS Stock, SUM(quantity) AS quantity, SUM(Qty) AS Qty FROM opstock 左连接 purchaseitem 开启 purchaseitem.Prdtname = opstock.Item 左连接 salesitem 开启 salesitem.Prdtname = purchaseitem.Prdtname 右连接 itemmaster 开启 itemmaster.itemname = purchaseitem.Prdtname 左加入pgroup ON pgroup.pgroupid = itemmaster.catcode WHERE billdate >= '".$newDate."' AND billdate billdte >= '".$newDate."' AND billdte Item ORDER BY pgroup ASC";

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

【讨论】:

  • 发帖前请查看帖子的编辑版本。请点击“编辑”并正确阅读编辑帮助和格式。请阅读How to AskHow to Answer--这个问题太宽泛且不清楚,而且是重复的常见问题解答,不应该回答。并且在回答时请不要只转储代码。 PS MySQL 中没有全外连接。
  • 错误号:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“OUTER JOIN purchaseitem ON purchaseitem.Prdtname = opstock.Item FULL OUTER JOIN”附近使用正确的语法
  • SELECT Item, pgroup, SUM(Stock) AS Stock, SUM(quantity) AS quantity, SUM(Qty) AS Qty FROM opstock FULL OUTER JOIN purchaseitem ON purchaseitem.Prdtname = opstock.Item FULL OUTER JOIN salesitem ON salesitem.Prdtname = purchaseitem.Prdtname 全外连接 itemmaster ON itemmaster.itemname = purchaseitem.Prdtname 全外连接 pgroup ON pgroup.pgroupid = itemmaster.catcode WHERE billdate >= '1' AND billdate = '2018-11-15' AND billdte
  • @esakkichandra MySQL 没有完整的外连接语法。有关此答案和问题,请参阅我的 cmets。
  • 您查看过您帖子的格式化版本吗?
猜你喜欢
  • 2011-02-16
  • 2020-09-13
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
相关资源
最近更新 更多