gpt4 book ai didi

python - 如何使用 sql alchemy 进行联接查询?

转载 作者:行者123 更新时间:2023-11-29 22:08:47 25 4
gpt4 key购买 nike

我正在尝试使用 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 还很陌生。感谢您提前提供的任何帮助。

最佳答案

如果列已经具有外键关系,则以下操作应该有效。

阅读docs在连接上。

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

关于python - 如何使用 sql alchemy 进行联接查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com