2017-08-01 148 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