2017-08-01 113 views
0

使用phpmyadmin 我有一张表,其中包含2个其他表的数量和2个ID。 一个表是“tb_request”,我想用它的ID进行分组。另一张桌子是“额外”,我想要2个SUM,如果额外是一杯饮料,一个如果不是。 选择和总结工作,但我希望它只做目标ID的总和。选择多个依赖于id的mysql

SELECT tb_request_extra.id_tb_request AS "ID" 
(SELECT SUM(amount) 
FROM tb_request_extra 
INNER JOIN tb_extra 
ON tb_request_extra.id_tb_extra = tb_extra.id 
WHERE tb_extra.type="drinks") AS "drinks" 
(Same for extras) 
FROM tb_request_extra 
GROUP BY tb_request_extra.id_tb_request 

我该如何做SUM只有currect ID?结果举例:什么即时得到

ID.  DRINKS.  EXTRAS 
1.    3.    5 
2.    1.    3. 
3.     1.    4. 
4.     0.    0. 

例如:

ID.  DRINKS.  EXTRAS 
1.    5.     12 
2.    5.      12 
    3.   5.     12. 
4.    5.      12 

继承人的结构 对于哪些事项这里:tb_request_extra - >编号,金额,id_tb_extra,id_tb_request ...... tb_extra->标识,类型

+0

什么是表结构?表格之间有什么关系?看这个。 https://stackoverflow.com/help/mcve – Eric

+0

你应该给你的表和列提供可读的名称。 –

+0

这里重要的是:tb_r_e - > id,amount,id_tb_e,id_tb_r。 tb_e-> id,输入 –

回答

-1

试试这个:

SELECT s1.ID,s1.Drinks,s2.Extras FROM 
    (SELECT tb_request_extras.id_tb_request AS 'ID', SUM(amount) AS "Drinks" 
    FROM tb_request_extras 
    INNER JOIN tb_extras 
     ON tb_request_extras.id_tb_extras=tb_extras.id 
    INNER JOIN tb_extras_type 
     ON tb_extras.tb_id_extras_type=tb_extras_type.id 
    WHERE tb_extras_type.extras_type="Bebidas" 
    GROUP BY tb_request_extras.id_tb_request) s1 
JOIN 
    (SELECT tb_request_extras.id_tb_request AS 'ID', SUM(amount) AS "Extras" 
    FROM tb_request_extras 
    INNER JOIN tb_extras 
     ON tb_request_extras.id_tb_extras=tb_extras.id 
    INNER JOIN tb_extras_type 
     ON tb_extras.tb_id_extras_type=tb_extras_type.id 
    WHERE tb_extras_type.extras_type!="Bebidas" 
    GROUP BY tb_request_extras.id_tb_request) s2 
ON s1.ID=s2.ID