Как дополнить таблицу недостающими значениями в MYSQL?

Есть таблица с 2 полями: 'user' и 'activity' ('user' - id пользователей, 'activity' - их активность, то есть какие-то положительные числа). Данная таблица является результатом некоторого подзапроса. А так же есть вторая таблица, которая является в свою очередь тоже результатом некоторого подзапроса. В данной таблице есть только один столбец: 'user', который содержит id пользователей.
Задача состоит в том, что нужно дополнить первую таблицу строками, содержащими те id пользователей, которых нет в первой таблице, но есть во второй. К слову во второй есть все id которые есть в первой таблице, а так же другие. В поле 'activity' данных строк нужно записать 0.
Акцентирую внимание на то что обе таблицы являются результатом каких-то подзапросов.

Пример
Первая таблица:
user       activity
2          17
4          45

Вторая таблица:
user
1
2
3
4

Результат:
user       activity
1          0
2          17
3          0
4          45


Буду очень благодарен, если напишете готовый код потому как очень плохо понимаю как работает JOIN и как его можно применять.
  • Вопрос задан
  • 800 просмотров
Решения вопроса 1
ewgenio
@ewgenio
Всё по чуть чуть
SELECT t2.user, IFNULL(t1.activity, 0) 
FROM table2 AS t2 
LEFT JOIN table1 AS t1 ON t1.user=t2.user  ORDER BY t2.user
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
select user, activity from table1
union
select user, 0 from table2
order by 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы