我在MySQL中有一个查询:
SELECT
O.id,
O.label,
A.name
FROM
organizations O
JOIN activities_area A JOIN assoc_organization_activities S ON
O.identifier = S.organization_id AND A.identifier = S.activities_area_id
ORDER BY
O.label
我想用SQLAlchemy做到:
^{pr2}$但这给了我一个错误:
InvalidRequestError: Could not find a FROM clause to join from. Tried joining to <class 'model.model.Activities'>, but got: Can't find any foreign key relationships between 'organizations' and 'activities_area'.
表AssocOrganizationsActivities只有3个字段:id、作为外键的组织的id和作为外键的活动区域的id。因此,表组织和活动都是通过AssocOrganizationsActivities链接起来的。在
如何让它工作?在
交换连接的顺序。原始SQL和查询都受到相同的影响,因此:
您要添加的WHERE子句
^{pr2}$看起来您正在尝试使用pre-ANSI-join语法,但与ANSI-join混合使用。它们完全是多余的,因为SQLAlchemy可以根据模型之间的外键关系来推断连接的ON子句。原始SQL的破坏方式与此类似
在O和A之间根本没有ON子句,此外,如果不首先加入关联表,就没有明显的方法连接它们。总而言之:
^{4}$相关问题 更多 >
编程相关推荐