在使用python ORM peewee仅在第一个表的一列上选择不同的值之后,我尝试将第二个表(PageLikes)连接到第一个表(PageVisits)上
在纯SQL中,我可以做到这一点:
SELECT DISTINCT(pagevisits.visitor_id), pagelikes.liked_item FROM pagevisits
INNER JOIN pagelikes on pagevisits.visitor_id = pagelikes.user_id
在peewee with python中,我尝试过:
query = (Page.select(
fn.Distinct(Pagevisits.visitor_id),
PageLikes.liked_item)
.join(PageLIkes)
这给了我一个错误:
distinct() takes 1 positional argument but 2 were given
我唯一可以且曾经使用distinct与peewee的方法是:
query = (Page.select(
Pagevisits.visitor_id,
PageLikes.liked_item)
.distinct()
这似乎不适用于我的场景
那么,在使用peewee连接另一个表之前,如何基于一列在一个表中只选择不同的值呢
正如Papooch所建议的,在模型上调用distinct似乎是可行的:
我认为您不应该以这种方式使用
fn.DISTINCT()
时遇到错误。我很想看到完整的回溯。在本地测试中,我在运行以下内容时没有问题:它生成的SQL与您所追求的内容相当。顺便说一句,我使用的是最新的peewee代码
相关问题 更多 >
编程相关推荐