@wrietr

Как составить sql?

Подскажите как сделать? уже весь мозг сломал

[data ] есть таблица с данными
id | value | year | month | day | hour ...

[ lastadata ] есть таблица с данными , которые уже проврены и они содержат id последней проверенной записи
id | id_data

как можно получить данные и если данных нет, то получить заместо них последние проверенные
напрмер
[data]
1 | 120 | 2015 | 12 | 10 | 2 |
2 | 121 | 2015 | 12 | 10 | 3 |
3 | 122 | 2015 | 12 | 10 | 4 |
4 | 122 | 2015 | 12 | 10 | 5 |

[lastdata]
1 | 2 <- ссылка

В итоге получить
120 | 2015 | 12 | 10 | 2 |
121 | 2015 | 12 | 10 | 3 |
122 | 2015 | 12 | 10 | 4 |
121 | 2015 | 12 | 10 | 3 |
122 | 2015 | 12 | 10 | 5 |

простые примеры
SELECT * FROM data WHERE year=<...> AND mont=<...> AND day = <...>


SELECT * FROM lastdata LEFT JOIN data ON data.id = lastdata.id_data WHERE <...>


ПОЯСНЕНИЯ НА ЯБЛОКАХ
У Васи 2 недели назад было 16 яблок. Потом неделю Вася болел. Потом выздоровел и начал говорить сколько у него яблок. Поэтому на период болезни нам надо показать сколько у него было яблок - то есть последнее которое мы от него получали. Грубо говоря забить пробел
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vadim_tur
Как я понял по последнему примеру тебе просто нужно добавить в таблицу поле lust_update тип TIMESTAMP по умолчанию CURRENT_TIMESTAMP с атрибутом on update. И обновлять ту же самую строку таблицы. И будешь видеть какое кол-во яблоки имеет на пользователь и когда он последний раз сообщит тебе об этом.

Это подходит? или нужно сохранять историю изменения количества яблок у пользователя?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы