Как запросить соединения с помощью sql alchemy?

Я пытаюсь использовать SqlAlchemy с mysql как backend. Ниже приведена моя схема таблицы (определенная для ORM с использованием SQLAlchemy):

class ListItem(Base): """""" __tablename__ = "listitem" ListItemID = Column(Integer, primary_key=True) ListItemTypeID = Column(Integer, ForeignKey("ListItemType.ListItemTypeID")) ModelID = Column(Integer, ForeignKey("Model.ModelID")) RefCode = Column(String(25)) def __init__(self, ListItemTypeID, ModelID, RefCode): self.ListItemTypeID= ListItemTypeID self.ModelID= ModelID self.RefCode= RefCode class Model(Base): """""" __tablename__ = "model" ModelID= Column(Integer, primary_key=True) Name = Column(String(255)) def __init__(self, Name): self.Name= Name 

Я не включаю в себя сопоставления классов для других ссылочных таблиц типа (ListItemType).

Я хотел бы знать, как запросить присоединение таблицы «ListItem» к таблице «Model» и таблице «ListItemType».

Аналогичным образом эквивалент SQL должен быть таким:

 select listitem.ListItemID, model.Name, listitemtype.Name from listitemrequest join listitemtype on listitemrequest.ListItemTypeID = listitemtype.ListItemID join model on listitemrequest.ModelID = Model.ModelID 

Я довольно новичок в использовании sqlalchemy. Спасибо за любую помощь заранее.

Если в столбцах уже есть отношение внешнего ключа, следующее должно работать.

Прочитайте документы о соединениях.

 result = session.query(listitemrequest). join(listitemtype). join(model). with_entities([listitem.c.ListItemID, mode.c.name,listitemtype.c.Name]). all() 
Interesting Posts