DatabaseError:注释过滤中的列名不明确

Posted

技术标签:

【中文标题】DatabaseError:注释过滤中的列名不明确【英文标题】:DatabaseError: ambiguous column name on annotation filtering 【发布时间】:2015-02-16 11:37:10 【问题描述】:

我正在尝试过滤注释查询。它给了我ambiguous column name date_created:

    truncate_date = connection.ops.date_trunc_sql('month', 'date_created')
    qs = Order.objects.extra('month':truncate_date)
    report = qs.filter(is_active=True, listing__device=device) \
    .values('month').annotate(Avg('amount_total')).order_by('-month')[:5]

当我取出listing__device=device 部分时,过滤工作正常。我正在使用Sqlite3

【问题讨论】:

【参考方案1】:

我必须指定表名:

 truncate_date = connection.ops.date_trunc_sql('month', 'table_name.date_created')

【讨论】:

以上是关于DatabaseError:注释过滤中的列名不明确的主要内容,如果未能解决你的问题,请参考以下文章

左外连接代码的不明确列名

laravel 雄辩的数据透视表查询“不明确的列名”

如何在不包含新列名和类型的情况下更改现有 Hive 表中的列注释?

使用 EF Core 过滤包含时的列名无效

使用 JOIN 进行 SQL Server 分页 - 列名“id”不明确

检索结果时如何解决不明确的列名?