2016-12-11 10 views
0

私はテーブルのユーザーと別のテーブルの写真があります。写真の表には、写真のダウンロードを含むdownloadという名前の列が含まれています。1つのテーブルからMysqlの合計ダウンロードと別の列に更新

user_id写真の列には、ユーザーのIDが含まれています。私は、downloadという名前のユーザーに別の列を作成しました。だから、Photographsの表は、この

id | user_id | download 
----+-----------+---------- 
1 | 1  | 5 
2 | 1  | 6 
3 | 2  | 6 
4 | 2  | 6 
5 | 1  | 6 

Users表は

id | download 
    ----+---------- 
    1 | 0   
    2 | 0 

最終結果はずが含まれている含まれているのuser_id

のように私は同じidの写真欄からの総ダウンロードしてそれを更新したいです次のようになります。

id | download 
----+---------- 
1 | 17   
2 | 12 

私はこれを試して、user_idとその合計ダウンロード数を返します。ユーザーテーブルで更新するには?

SELECT 
    user_id, SUM(download) AS Total 
FROM 
    Photographs 
GROUP BY 
    user_id 
+0

あなたのユーザーテーブルは既に存在しますか? –

答えて

2

この質問に対する回答は簡単です。

$sql = " 
UPDATE users u, (SELECT user_id, SUM(download) as dcount FROM photographs GROUP BY user_id) as p 
SET u.download = dcount WHERE u.id = p.user_id 
"; 

$result = $conn->query($sql) or die(mysqli_error($conn)); 

あなたは既に半分の方法で、うまくやっていました。

+1

これは完璧に動作します! – hamzaali

関連する問題