使用sqlalchemy进行自然连接

2024-06-01 00:04:32 发布

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

sqlachemy中的join如何工作?在

class Enrollments(Base):
    __tablename__ = 'Enrollments'
    StudentID = Column(INTEGER, ForeignKey('Student.StudentID'))
    FinalGrade = Column(VARCHAR(3))



class Student(Base):
    __tablename__ = 'Student'

    StudentID = Column(INTEGER, primary_key=True)
    Name = Column(VARCHAR(100))
    EnrolledIn = relationship('Enrollments')


 session.query(Student).join(Enrollments).all() #what isn't giving me what I expect

我希望这会给我三列(StudentID,Name,FinalGrade,EnrolledIn),但是它只给了我学生对象,没有应该附加的注册,我做错了什么?在


Tags: namebasecolumnintegerwhatstudentclassjoin
1条回答
网友
1楼 · 发布于 2024-06-01 00:04:32

注册被附加到每个Student对象,作为student.EnrolledIn。在

但是连接用于查询,而不是获取;如果您想预先加载它们,则需要

session.query(Student).options(joinedload(Student.EnrolledIn))

此处记录关系加载:http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html#eager-loading

{{cd3}通常只为cd3}类的名称保留

相关问题 更多 >