Я запрашивая две таблицы с SQLAlchemy, я хочу использовать отличную возможность на моем запросе, чтобы получить уникальный набор идентификатор клиентаSQLAlchemy отчетливого, order_by другого столбца
У меня есть следующий запрос:
orders[n] = DBSession.query(Order).\
join(Customer).\
filter(Order.oh_reqdate == date_q).\
filter(Order.vehicle_id == vehicle.id).\
order_by(Customer.id).\
distinct(Customer.id).\
order_by(asc(Order.position)).all()
Если вы видите, что происходит здесь, я запрашиваю таблицу заказов для всех заказов за определенную дату, для конкретного автомобиля, это работает нормально. Однако некоторые клиенты могут иметь более одного заказа за одну дату. Поэтому я пытаюсь отфильтровать результаты, чтобы только один раз указывать каждого клиента. Эта работа прекрасна, однако для этого я должен сначала заказать результаты по столбцу, на котором есть отдельная() функция. Я могу добавить во второй order_by в столбец, я хочу, чтобы результаты упорядочивались, не вызывая синтаксическую ошибку. Но он игнорируется, и результаты просто упорядочиваются Customer.id.
Мне нужно выполнить мой запрос в таблице заказов и присоединиться к клиенту (а не наоборот) из-за того, как были установлены внешние ключи.
Это то, что я хочу сделать в рамках одного запроса? Или мне нужно будет перерисовать мои результаты, чтобы получить нужные данные в правильном порядке?
Ahh thanks, thats гораздо лучший подход. Я добавил в s.qeury order_by (Order.position) .all() и решил, что гораздо лучше использовать два запроса – crooksey