我需要合并两个表,User 和 Post。在最终版本中,您需要从用户的帖子和用户名中选择整个内容。这些模型通过外键链接
我用SQL解决了这个问题:
SELECT post.*, public.user.username
FROM post
JOIN public.user ON post.author_id=public.user.id
, 但我无法以任何方式将其转移到 sqlalchemy 。 我的询问:
query = select(Post, User.username).join(User).filter(Post.author_id == User.id)
result = await session.execute(query)
return {'status': 200, 'data': result.scalars().all()}
不起作用,我已经使用 join 尝试了很多选项。没有任何帮助。我无法使用关系
如果您使用
scalars()
,结果将不包含 User.username
。在这种情况下,您只需使用 execute
即可。您还可以将 ON
条件放在 join
的第二个参数中,而不是放在 filter
中,后者会将其放在 WHERE
子句中。
stmt = select(Post, User.username).join(User, Post.author_id == User.id)
for post, username in session.execute(stmt).all():
print (post, username)