В базе данные существуют три таблицы:
1. push_actual
2. push
3. push_log
Таблицы push_actual и push имеют поле created, спустя месяц после создания записи в таблице push_actual, она попадает в таблицу push.
Таблица push_log имеет колонку push_type (0 - push, 1 -push_actual), которая указывает на нужную таблицу.
Также существует код, который получает данные из таблицы push_actual = Push::tableName()
$push_log =
(new Query())
->select([
'message' => 'push.message',
'status' => 'log.status',
'created_at' => 'log.created_at'
])
->from(['push' => Push::tableName()])
->leftJoin(['log' => 'push_log'], 'log.push_id = push.id')
->where(['push.order_id' => $id])
->all();
проблема в том, что в таблице push_log пересекаются id и некорректно получаются данные.
Как доработать запрос, чтобы он учитывал столбец created в таблицах push и push_actual, и если прошло более месяца, то получал данные по условию push_log.push_type = 0, иначе push_log.push_type = 1?