У меня есть эти две таблицы:Как обновить одну таблицу на основе другой?
// user
+----+-------+------------+
| id | name | total_rep |
+----+-------+------------+
| 1 | Jack | 100 |
| 2 | Peter | 334 |
| 3 | John | 1 |
| 4 | Ali | 5463 |
+----+-------+------------+
// rep
+----+------------+---------+------+
| id | reputation | id_user | done |
+----+------------+---------+------+
| 1 | 5 | 2 | 1 |
| 2 | 2 | 3 | 1 |
| 3 | 15 | 2 | Null |
| 4 | 10 | 2 | Null |
| 5 | 5 | 4 | 1 |
| 6 | 10 | 3 | Null |
+----+------------+---------+------+
Я пытаюсь суммировать количество reputation
столбца из rep
таблицы, где done
является Null
для конкретного пользователя, а затем добавить его в total_rep
колонку из user
таблицы. Так что ожидается выход:
// specific user
$id = 2;
// user
+----+-------+------------+
| id | name | total_rep |
+----+-------+------------+
| 1 | Jack | 100 |
| 2 | Peter | 359 | -- this is updated
| 3 | John | 1 |
| 4 | Ali | 5463 |
+----+-------+------------+
Примечание: Тогда я буду обновлять done
колонку и установить все Null
значения для этого пользователя в 1
. (это не мой вопрос, я могу это сделать сам)
Как это сделать?
Поиск по SO для запросов «mysql update group by». Похоже, вы можете достичь своей цели с помощью подзапроса, где вы будете группировать на 'rep', после чего вы присоедините его к таблице' user' и обновите ее. – michaJlS