SQLAlchemy许多外部连接与fi

2024-09-30 01:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PrettyPrinted的Flask SQLAlchemy教程,试图弄清楚在查询多对多表环境时如何获得特定的行为。在

下面我将包括我一直在尝试的查询和SQLAlchemy ORM设置的代码。根据本教程(不涉及联接或outerjoin),有两个主表,一个Channel和一个User表,以及一个名为“subs”的关系表。所以每个用户都可以“订阅”一个频道,或者多个频道,或者没有频道。在

我想弄清楚的是如何进行查询,这样我就可以得到Channel中除筛选之外的所有行的列表,或者使用一个计算列或额外的列来指示特定用户id“订阅”的那些行。因此,将返回所有内容,只返回一个额外的列(或列中不是空数据),用于选定用户订阅的列。在

以下是我一直在尝试的问题(尝试了其他一些方法,但运气更差):

chan_query = Channel.query.outerjoin(User, User.user_id==1).all()

问题是,它不仅返回Channel中的所有行(我确实希望它这样做),而且当我深入到每一行而不是仅仅有一个null和not null,或者任何只表示所选用户id正在订阅的内容时,它会列出订阅每个频道的所有用户。我能够模拟我正在尝试做的事情的唯一方法是使用两个查询-一个用于所有频道,一个用于用户订阅的所有频道,然后使用理解来构建我希望通过单个查询获得的内容。在数据管理方面不是很像Python,也不是很好的实践。在

有人能给我指出我做错了什么,以及如何学会改正它吗?非常感谢你!在

下面是正在使用的ORM表的代码:

^{pr2}$

Tags: 方法代码用户id内容sqlalchemyormchannel

热门问题