Mysql jointure gauche et de la somme

J'ai trois table et j'ai besoin de somme séparément. Aussi je vais utiliser des champs sur sélectionner ou la clause where.

SELECT i.*, x.* FROM items AS i 
 LEFT JOIN
 (
   SELECT
   p.item_id
   ,SUM(p.amount) AS saleAmount
   ,SUM(IF(p.type=1,pa.amount,0)) AS paidAmount
   FROM payments AS p
   LEFT JOIN payment_actions AS pa ON pa.payment_id=p.id
   GROUP BY p.id
) AS x ON x.item_id=i.id

articles de table;

id  
---
1

tableau paiements;

id  |   item_id |   amount
---------------------------
1   |   1       |   300 

payment_actions table;

id  |   payment_id  |   amount
---------------------------
1   |   1           |   100 
1   |   1           |   50

Le résultat devrait être;

saleAmount  | paidAmount
--------------------------
    300     |   150
  • quel est votre sortie désirée et s'il vous plaît poster un exemple de données?
  • J'ai mis à jour la question
InformationsquelleAutor Mert Emir | 2013-05-02