2011-10-24 57 views
1

我有兩個表。 表 「用戶」 包含USER_ID,USER_NAME 表 「交易」 包含USER_ID,交易如何在一個表中顯示多行,並將另一個表中的一行顯示爲單行

如:

TABLE USER: 
user_id, user_name 
1, Ram 
2, John 
3, Rahim 

TABLE Transactions 
user_id, transactions 
1, 500 
1, 300 
2, 250 
1, 450 
3, 100 
1, 250 
3, 50 

我想要顯示的結果爲:

user_name, Total 
Ram, 1500* 
John, 250 
Rahim, 150 
  • 是該特定用戶的所有交易的總和

我該怎麼做?

+0

我的問題有錯誤。我的結果應該是:user_id,Total。 (不是user_name,Total)很抱歉讓你困惑。 – user1010966

+0

已編輯帖子。無論如何,我認爲你得到了正確的答案。 –

+0

對不起。在重寫我的評論之前,我只需點擊「輸入」鍵。我需要user_name,Total(例如:Ram,1500)。請忽略我最後的評論。再一次爲我的錯誤感到遺憾 – user1010966

回答

2
SELECT 
    u.user_name, 
    SUM(t.transactions) Total 
FROM users u 
LEFT JOIN transactions t ON t.user_id = u.user_id 
GROUP BY t.user_id 

我認爲你應該使用LEFT JOIN,因爲它應該在任何情況下,選擇用戶的總數(NULL),即使是0

+0

如果用戶需要的所有數據都在同一個表中,爲什麼需要連接? –

+0

@他想要user_name。 – genesis

+0

看起來,但正如你所看到的,在他的例子中,他把user_id而不是user_name。我也很困惑。 –

1
SELECT u.user_id , SUM(t.transactions) AS total 
FROM user AS u JOIN transactions AS t 
GROUP BY u.user_id 
1

嘗試

SELECT 
    u.user_id, 
    sum(t.transactions) as total 
FROM 
    user u 
    JOIN transactions t ON u.user_id = t.user_id 
GROUP BY 
    u.user_id 
相關問題