Как присоединиться и получить сумму из трех разных таблиц в codeigniter? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть такой случай, я хочу сделать отчет из трех разных таблиц в CodeIgniter, а затем составить сводку из других таблиц, для более подробной информации проверьте это:

У меня есть таблица tbl_product:

+----------+----------+---------+
| id_prdct | product  | remark  |
+----------+----------+---------+
|    1     | marriage | remark1 |
|    2     | office   | remark2 |
|    3     | school   | remark3 |
+----------+----------+---------+

тогда у меня есть таблицы tbl_sell, как показано ниже:

+---------+----------+------------+------------+
| id_sell | id_prdct | item_sell  | price_sell |
+---------+----------+------------+------------+
|    1    |    1     | dress      | USD 500    |
|    2    |    1     | shoes      | USD 600    |
|    3    |    1     | decoration | USD 1500   |
|    4    |    2     | dress      | USD 300    |
|    5    |    2     | shoes      | USD 500    |
|    6    |    3     | shoes      | USD 900    |
+---------+----------+------------+------------+

и tbl_buy, как показано ниже:

+--------+----------+------------+------------+
| id_buy | id_prdct | item_buy   | price_buy  |
+--------+----------+------------+------------+
|    1   |    1     | dress      | USD 250    |
|    2   |    1     | shoes      | USD 300    |
|    3   |    1     | decoration | USD 1000   |
|    4   |    2     | dress      | USD 200    |
|    5   |    2     | shoes      | USD 300    |
|    6   |    3     | shoes      | USD 500    |
+--------+----------+------------+------------+

В моемвеб-страницу, я хочу получить результат, как показано ниже:

+----+----------+------------+----------+----------+
| No | Product  | Sum Sell   | Sum Buy  | Profit   |
+----+----------+------------+----------+----------+
|  1 | marriage | USD 2600   | USD 1550 | USD 1050 |
|  2 | office   | USD 800    | USD 500  | USD 300  |
|  3 | school   | USD 900    | USD 500  | USD 400  |
+----+----------+------------+----------+----------+

, поэтому я хочу сделать сводку из tbl_sell и tbl_buy, а затем показать их на моей веб-странице, а затем сделать сводку (прибыль), как моя последняя таблица выше.есть ли какие-либо предложения по решению моего дела?

Спасибо ...

========================================================= [ОБНОВИТЬ ОТВЕТ]

Я уже пробовал это, но все равно получилошибка, есть предложения по этому коду?

$d['data'] = $this->db->query("select sum(tbl_sell.price) AS total_sell, sum(tbl_buy.price) AS total_buy
            left join tbl_sell on tbl_sell.id_prdct=tbl_product.id_prdct
            left join tbl_buy on tbl_buy.id_prdct=tbl_product.id_prdct
            from tbl_product 
            WHERE tbl_sell.id_prdct=tbl_product.id_prdct AND tbl_buy.id_prdct=tbl_product.id_prdct ");

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Попробуйте это sql:

SELECT p.id_prdct, 
       p.product, 
       sell.total, 
       buy.total 
FROM   tbl_product p 
       LEFT JOIN (SELECT id_prdct, 
                         Sum(price_sell) total 
                  FROM   tbl_sell 
                  GROUP  BY id_prdct) sell 
              ON p.id_prdct = sell.id_prdct 
       LEFT JOIN (SELECT id_prdct, 
                         Sum(price_buy) total 
                  FROM   tbl_buy 
                  GROUP  BY id_prdct) buy 
              ON p.id_prdct = buy.id_prdct; 
0 голосов
/ 27 декабря 2018

попробуйте это, я надеюсь, это поможет вам.

function functionName($product_id){
$this->db->select('tbl_product.*,sum(tbl_sell.price_sell),sum(tbl_buy.price_buy)');
$this->db->join('tbl_sell','tbl_sell.id_prdct=tbl_product.id_prdct');
$this->db->join('tbl_buy','tbl_product.id_prdct=tbl_buy.id_prdct');
return $this->db->where('tbl_sell.id_prdct',$product_id)->where('tbl_buy.id_prdct',$product_id)->get('tbl_product')->result_array();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...