我有一张桌子用户和另一张桌子照片。照片表包含名为download
的列,其中包含照片的下载。
user_id
列包含用户的ID。我在名为download的用户中创建了另一个列。我想用照片列中与user_id
所以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
最终结果如下:
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));
你已经走了一半,干得好。