ssh -f -N -L 4080:192.168.0.10:80 nameuser@88.77.66.55
Когда клиент общается с ботом, бот выдает ему список товаров, когда клиент выбрал товар бот собирает товар и данные клиента ( он ввел их заранее ) и отправляет определённому пользователю (Макс допустим). Предположим Макс уже общался с ботом.
# Тут не буду писать про форматиование, ниже покажу как лучше
# и прозрачнее форматировать такие участки кода
# Но здесь отмечу, что в питоне есть замечательные f-строки
# для более читабельной подстановки параметров.
# Вообще любые позиционные параметры, в отличии от именованных,
# сегда сильно снижают читабельность, размазывая контекст необходимого внимания
# по коду.
last_time = self.client.execute('SELECT time_local FROM {} ORDER'
' BY time_local DESC LIMIT 1'.format(table_name))
# Здесь появляется непонятная переменная tag, которая никак не пояснена в вопросе:
self.last_time[tag] = last_time[0][0]
print(self.last_time[tag])
# А вот здесь снова нечитабельные и зачастую опасные позиционные подстановки
# среди которых ОЧЕНЬ опасное и мусорное экранирование, которое грозит нам
# потенциальными SQL-инъекциями.
# А ещё в контексте вашего кода одно и то же у вас называется
# двумя непохожими именами: tag и client_id. Для того, кто будет итать ваш код
# одинаковые вещи должны называться одинаково.
# Это, я считаю, наравне с форматированием, основная причина вашей ошибки тут.
table = self.client.execute('SELECT {} FROM {} WHERE client_id = \'{}\''
'AND time_local >= \'{}\' ORDER BY'
' time_local DESC'.format(table_fields,
table_name,
tag,
self.last_time[tag] - timedelta(seconds=5)))
st_time = self.client.execute(f'''
SELECT time_local
FROM {table_name}
ORDER BY time_local DESC
LIMIT 1
''')
self.last_time[tag] = last_time[0][0]
print(self.last_time[tag])
time_5_seconds_ago = self.last_time[tag] - timedelta(seconds=5)
table = self.client.execute(f'''
SELECT {table_fields}
FROM {table_name}
WHERE
client_id = {str(tag)!r}
AND time_local >= {str(time_5_seconds_ago)!r}
ORDER BY time_local DESC
''')
На сколько я понял, автору вопроса нужно сгруппировать реплики по первому слову. Фильтрация - это другое.