2012-07-26 24 views
0

我有一個包含用戶表,credit_purchase表和credit_spend表的應用程序。我正在嘗試獲取用戶當前擁有的信用額度。爲每個用戶在兩個表中選擇SUM

信貸表如下所示:

credit_purchase

+----+---------+-------+---------------------+ 
| id | user_id | coins | timestamp   | 
+----+---------+-------+---------------------+ 

credit_spend

+----+---------+-------+---------------------+ 
| id | user_id | coins | timestamp   | 
+----+---------+-------+---------------------+ 

我試圖做的是選擇SUM(credit_purchase.coins) - SUM( credit_spend.coins)爲每個用戶。現在我有這樣的事情:

SELECT users.*, COALESCE(SUM(credit_purchase.coins) - SUM(credit_spend.coins), 0) 
FROM users 
LEFT JOIN credit_purchase ON users.id = credit_purchase.user_id 
LEFT JOIN credit_spend ON users.id = credit_spend.user_id 
GROUP BY users.id 

但是,它的結果是不正確的數字。這似乎是正確的購買總和,但乘以購買數量的支出乘以SUM。

我在做什麼錯?

謝謝!

回答

2

試試這個:

SELECT users.*, 
     COALESCE(SUM(credit_purchase.coins) - SUM(credit_spend.coins), 0) 
FROM users 
      LEFT JOIN credit_purchase 
        ON users.id = credit_purchase.user_id 
      LEFT JOIN credit_spend 
        ON users.id = credit_spend.user_id 
GROUP BY users.id 
+0

哎呀。我用錯誤的表名寫了問題。該編輯反映了我一直在使用的應用程序。 – David 2012-07-26 00:10:00