【发布时间】:2021-08-06 10:05:23
【问题描述】:
我目前在一个项目中,我使用 for 循环创建一个元组列表,其形式为 (id_one, id_two),其中来自以下两个查询的ranking_id 相等。
如果有几行具有相同的ranking_id,则查询从数据库中选择最新更新的行很重要。否则顺序无关紧要。
我想知道是否有一个快速的单查询来代替 for 循环和两个单查询。帮助将不胜感激。干杯!
#查询一个
cur.execute(f''' SELECT DISTINCT ON (ranking_id) ranking_id, id
FROM {my_table}
WHERE user_id = ({user_id_one})
ORDER BY ranking_id ASC, updated_at DESC''')
list_one = cur.fetchall()
#查询二
cur.execute(f''' SELECT DISTINCT ON (ranking_id) ranking_id, id
FROM {my_table}
WHERE user_id = ({user_id_two})
ORDER BY ranking_id ASC, updated_at DESC''')
list_two = cur.fetchall()
我正在使用 python 和 postgresql。(我不是在问如何编写 for 循环)
【问题讨论】:
标签: python sql postgresql