主要区别在于,前者会导致查询使用SQL-92
JOIN语法,而后者会使用较旧的语法-
例如,有些人出于习惯而不喜欢它。两者都是正确的方法,两者都与是否使用Python语言无关。我还认为,SQLAlchemy也不是惯用语言,但
Query.join()正如您所指出的那样,它与定义的外键关系和ORM关系很好地配合使用。在现代SQL
DBMS中,它们还应导致相同的执行计划,因此资源使用等方面没有有意义的区别。
关于
Query.update()不支持显式联接的问题,不同的SQL
DBMS对具有不同语法和方法的多个表更新具有不同的支持。有些允许显式连接,有些则不允许,有些则允许通过子查询进行更新。当前的实现似乎是一个折衷方案,并且将为
UPDATE使用中的DBMS提供适当的声明。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)