Sqlalchemy 我无法合并两个表

问题描述 投票:0回答:1

我需要合并两个表,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 尝试了很多选项。没有任何帮助。我无法使用关系

sql join sqlalchemy fastapi
1个回答
0
投票

如果您使用

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)
© www.soinside.com 2019 - 2024. All rights reserved.