我正在尝试使用SqlAlchemy和mysql作为后端。以下是我的表模式(使用SQLAlchemy为ORM定义):
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相当新。感谢您提前提供任何帮助。
答案 0 :(得分:0)
如果列已经具有外键关系,则以下内容应该有效。
阅读关于联接的docs。
result = session.query(listitemrequest).
join(listitemtype).
join(model).
with_entities([listitem.c.ListItemID, mode.c.name,listitemtype.c.Name]).
all()