如何使用sql炼金术查询连接?

2024-10-01 17:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用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应该是这样的:

^{pr2}$

我对使用sqlalchemy相当陌生。提前谢谢你的帮助。在


Tags: keynameselfbasemodelcolumnintegerclass
1条回答
网友
1楼 · 发布于 2024-10-01 17:22:05

如果这些列已经有外键关系,那么下面的方法应该有效。在

读取联接上的docs。在

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

相关问题 更多 >

    热门问题