如何使用sqlalchemy core从resultset中选择distinct?

2024-10-01 19:19:13 发布

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

我有3个模型:任务、备注、文档。一个任务可以有1个/多个备注和/或文档。型号:

tasks = Table("tasks", metadata,
              Column("id", Integer, primary_key=True)

update_history = Table("update_history", metadata,
                   Column("id", Integer, primary_key=True),
                   Column("remarks", String),
                   Column("task_id", Integer,ForeignKey("tasks.id")),

documents = Table("documents", metadata,
                  Column("id", Integer, primary_key=True),
                  Column("file_name", String),
                  Column("task_id", Integer, ForeignKey("tasks.id"))

省略了其他属性。我只使用sqlalchemy core如何为特定任务生成表备注、文档。在

我试过了:

^{pr2}$

为此,我得到了多个输出,而不是不同的输出,即对于同一个任务,如果有2个备注,2个文档,我的o/p应该只有1个不同的任务id,有不同的备注,不同的文档名。目前我得到:

{
  "updates_docs": [
    {
      "description": "Create journal entries for May 2015", 
      "file_name": "bower.txt", 
      "remarks": "remark 1 for task 1", 
      "updates_id": 1
    }, 
    {
      "description": "Create journal entries for May 2015", 
      "file_name": "curl_commands.md", 
      "remarks": "remark 2 for task 1", 
      "updates_id": 2
    }, 
    {
      "description": "Create journal entries for May 2015", 
      "file_name": "curl_commands.md", 
      "remarks": "remark 1 for task 1", 
      "updates_id": 1
    }, 
    {
      "description": "Create journal entries for May 2015", 
      "file_name": "bower.txt", 
      "remarks": "remark 2 for task 1", 
      "updates_id": 2
    }
  ]
}

这是不可取的。有没有更好的方法来正确使用distinct和sqlalchemy核心表达式语言? 使用postgresql 9.1


Tags: name文档idfortaskcreatecolumninteger

热门问题