python 标题:带有多个JOIN的SELECT查询在按降序而不是升序排序时返回重复的行

0aydgbwb  于 2023-06-28  发布在  Python
关注(0)|答案(1)|浏览(86)

正文:我使用SQLAlchemy构造一个SELECT查询,它涉及多个表之间的多个JOIN。当我使用order_by方法按其中一列升序排列结果时,查询返回的数据没有重复的行。但是,当我按相同的列以降序对结果进行排序时,查询将为结果中的每一行返回重复的行。
下面是我使用的代码示例:

stmt = select([table1, table2, table3]).select_from(table1.join(table2).join(table3)).order_by(table1.c.column1.asc())

在本例中,我从三个表中选择列,并使用两个JOIN语句连接它们。当我按column1升序排列结果时,查询返回的数据没有重复行。但是,当我按同一列以降序对结果进行排序时,查询返回重复的行。
我尝试在order_by子句中添加额外的列以确保排序是唯一的,但这并没有解决问题。我不知道还能尝试什么。
谁能帮我弄清楚为什么当我按column1降序排列结果时会得到重复的行,以及如何解决这个问题?

qvtsj1bj

qvtsj1bj1#

我不熟悉SQLAlchemy,但你不能使用.distinct吗?

相关问题