Python slqalchemy命令的顺序对生成的sql查询有影响吗?
我的sqlalchemy查询中的命令顺序是否会影响结果sql查询中的操作顺序 这是什么Python slqalchemy命令的顺序对生成的sql查询有影响吗?,python,sqlalchemy,Python,Sqlalchemy,我的sqlalchemy查询中的命令顺序是否会影响结果sql查询中的操作顺序 这是什么 result = db.session.query(Class, Student, SpecialNeed) \ .filter(Student.age > 10, Student.class_id == Class.id) \ .outerjoin(SpecialNeed,
result = db.session.query(Class, Student, SpecialNeed) \
.filter(Student.age > 10,
Student.class_id == Class.id) \
.outerjoin(SpecialNeed, \
and_(SpecialNeed.student_id == Student.id , \
SpecialNeed.valid == True))
和这个一样吗
result = db.session.query(Class, Student, SpecialNeed) \
.outerjoin(SpecialNeed, \
and_(SpecialNeed.student_id == Student.id , \
SpecialNeed.valid == True))\
.filter(Student.age > 10,
Student.class_id == Class.id)
result = db.session.query(Class, Student, SpecialNeed) \
.filter(Student.age > 10,
Student.class_id == Class.id)
这是吗
result = db.session.query(Class, Student, SpecialNeed) \
.filter(Student.age > 10) \
.filter(Student.class_id == Class.id)
和这个一样吗
result = db.session.query(Class, Student, SpecialNeed) \
.outerjoin(SpecialNeed, \
and_(SpecialNeed.student_id == Student.id , \
SpecialNeed.valid == True))\
.filter(Student.age > 10,
Student.class_id == Class.id)
result = db.session.query(Class, Student, SpecialNeed) \
.filter(Student.age > 10,
Student.class_id == Class.id)
在您的情况下,否,两种情况下的查询是相同的。前两者是相同的;首先是FROM列表,然后是WHERE,依此类推。与SQLAlchemy中的构建器模式相比,SQL只有严格的语法来规定子句的顺序。在后一个查询filterx中,y与filterx.filtery相同,都产生x和y SQLAlchemy中有一些方法确实依赖于顺序,或者对其他操作的顺序有影响,例如,和。SQL中还有一些操作,例如左连接 因此,这个标题的答案是:它可以,但并不总是。除了了解底层SQL之外,您还必须查看文档并了解操作的功能。相关:,