如何在mysql中使用calculate连接查询?

时间:2017-02-06 10:44:16

标签: php mysql codeigniter

如何在mysql中使用calculate连接查询?

fab_in表 enter image description here

fab_out表

enter image description here

我在下面的查询

  SELECT fabric_in.fabric_id, fabric_in.fabric_date, fabric_in.fabric_order_qty, fabric_in.fabric_rejected_qty, fabric_in.fabric_rejected_reason, fabric_in.fabric_total_qty, fabric_in.fabric_company_name, fabric_out.fabric_out_qty 
    FROM fabric_out 
    RIGHT JOIN fabric_in 
ON fabric_out.fabric_id=fabric_in.fabric_id

结果查询 enter image description here

但是我想要与fabric_id建立和,你可以帮忙吗? enter image description here

4 个答案:

答案 0 :(得分:2)

SELECT 
    fabric_in.fabric_id, 
    fabric_in.fabric_date, 
    fabric_in.fabric_order_qty, 
    fabric_in.fabric_rejected_qty, 
    fabric_in.fabric_rejected_reason, 
    fabric_in.fabric_total_qty, 
    fabric_in.fabric_company_name, 
    SUM(fabric_out.fabric_out_qty) AS fabric_out_qty
FROM fabric_out 
RIGHT JOIN fabric_in 
ON fabric_out.fabric_id=fabric_in.fabric_id
GROUP BY fabric_in.fabric_id

答案 1 :(得分:1)

您必须使用MySQL的聚合函数:

SELECT MAX(fabric_in.fabric_id) as fabric_id, 
       MAX(fabric_in.fabric_date) as fabric_date, 
       MAX(fabric_in.fabric_order_qty) as fabric_order_qty, 
       MAX(fabric_in.fabric_rejected_qty) as fabric_rejected_qty, 
       MAX(fabric_in.fabric_rejected_reason) as fabric_rejected_reason, 
       MAX(fabric_in.fabric_total_qty) as fabric_total_qty, 
       MAX(fabric_in.fabric_company_name) as fabric_company_name, 
       SUM(fabric_out.fabric_out_qty) AS fabric_out_qty
    FROM fabric_out 
    RIGHT JOIN fabric_in 
    ON fabric_out.fabric_id=fabric_in.fabric_id
    GROUP BY fabric_in.fabric_id

这对你有用,没有经过测试。

答案 2 :(得分:0)

作为新版本,您需要将所有列添加为group by或aggravate函数。所以你可以这样使用你的查询。

/path/to/your/project/.git

答案 3 :(得分:0)

试试这个...

SELECT 
    fabric_in.fabric_id,
    fabric_in.fabric_date, 
    fabric_in.fabric_order_qty, 
    fabric_in.fabric_rejected_qty,
    fabric_in.fabric_total_qty,
    fabric_in.fabric_company_name,
    a.fabric_out_qty 
FROM fabric_in RIGHT JOIN  
    (select sum(fabric_out_qty) as out_total FROM fabric_out group by fabric_id ) as a ON a.fabric_id=fabric_in.fabric_id;