SQLAlchemy - выбрать записи

kull

Новичок
Пользователь
Мар 7, 2022
4
0
1
Доброго времени суток!
Помогите сделать выборку из таблицы.

Вид таблицы
chat_idrefto_userlevelprice
10070
211110
31100
41140
522130
61220
732150
84310
955220

У каждого level свой price который подставляется в запросе
По коду этот запрос написал такой, но можно написать это грамотней наверно...
Python:
s.query(Table).filter(Table.level < 7, or_(Table.price >= level_1),
                              or_(Table.price >= level_2),
                              or_(Table.price >= level_3),
                              or_(Table.price >= level_4),
                              or_(Table.price >= level_5),
                              or_(Table.price >= level_6)).order_by(Table.id.asc()).all()


Результат выполнения будет такой:

chat_idrefto_userlevelprice
211110
522130
733150
955220

В таблице с результатом надо уже сравнивать 4 колонки chat_id, ref, to_user, level
Логика следующая: от записи где chat_id == 9 смотрим равен ли ref и to_user если да, перейти к строке где chat_id == 5 (так как в 9 строке to_user == 5)
В пятой строке проверить level записью из 9 строки если он меньше подниматься выше по таблице. Из пятой строки перейти ко второй и снова сравнить level в примере он опять меньше в таком случае надо перейти к строке 1 которой выборке нет.

Может быть и другая ситуация когда в 2 строке level будет равен или больше чем в 9 строке тогда, надо остановиться на второй записи.

Вроде как то давно видел решение подобной задачи и там решалось это все одним запросом в базу или два запроса, но точно не так как у меня получается 100500 запросов:eek:
 

Форум IT Специалистов