Начиная с модели блога и тега «многие ко многим» и запроса из Querying отношения "многие ко многим" в SQLAlchemy, я знаю, что session.query(Blog).join(Blog.tags).options(contains_eager(Blog.tags)).filter(Blog.tags.in_(list_of_relevant_tags)).all()
даст мне все сообщения блога, которые имеют хотя бы один из тегов в list_of_relevant_tags
, и эти теги уже будут запрошены и возвращены.
Потенциальная проблема, которую я вижу (у меня проблемы с тестированием), заключается в том, что я хочу получить список тегов в возвращенных блогах. Я хочу вернуть все теги, но сгенерированный SQL предполагает, что в лучшем случае для этого потребуется второй запрос. В худшем случае SQLA вернет только те теги, которые соответствуют списку.
Есть ли способ отправить этот запрос в ORM, чтобы вернуть соответствующие сообщения в блоге вместе с всеми их тегами в одном обращении к базе данных?