Openerp 返回与sql语句odoo 9不同

Openerp 返回与sql语句odoo 9不同,openerp,odoo-9,Openerp,Odoo 9,我在数据库中总共有3行,其中一行ID=1,在控制台中显示3行而不是一行 @api.multi def call_func(self): result = [] for data in self.search([]): self._cr.execute('''select distinct date from mytabl

我在数据库中总共有3行,其中一行ID=1,在控制台中显示3行而不是一行

@api.multi 
    def call_func(self):
        result = []
        for data in self.search([]):
            self._cr.execute('''select distinct
                    date
                from
                    mytable
                 WHERE id = 1''')
            for line in self._cr.dictfetchall():
                print line["date"]
我很忙,但不是工作

输出为:

2016-01-01 00:00:00
2016-01-01 00:00:00
2016-01-01 00:00:00

我需要2016-01-01 00:00:00

SQL语句看起来不错。您是否直接使用客户机在DB服务器上执行该语句?你只有一张唱片吗

如果是,我认为您的问题可能在于
self.search([])
。这是你写的函数吗?它是否对记录执行搜索?如果是这样,您是否可以基于空字符串进行搜索,并返回表中的所有3条记录

如果self.search([])返回一个包含3个元素的数组,那么您只需在同一行上执行三次
selectdistinct

如果这是您的问题,则您可以通过删除此部件来解决:

for data in self.search([]):

没错,这最后一个提示就是问题所在。数据库中有3行,搜索将返回一个包含3个条目的
记录集。因此,每个查询将执行3次,这将输出同一行的3次。