В базе данные существуют три таблицы:
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?