Python的orm框架sqlalchemy的查询多条数据只显示第一条!!

来源:互联网 发布:程序员需要学哪本书 编辑:程序博客网 时间:2024/05/01 05:32
我查询数据条件是时间字段的一个区间,可是每次都只返回查询结果的第一条。。
类PointVal的定义如下:
```
 class PointVal(Base):
    # 表名
    __tablename__ = 'T_ZB_PL'
    # 表结构
    INSTR_NO = Column(String(30), primary_key=True)
    DT = Column(DateTime)
    R1 = Column(String(11))
    R2 = Column(String(11))
    R3 = Column(String(11))
    NOTE = Column(String(20))
```


查询代码如下:
```
results = getSession().query(PointVal).filter(
    PointVal.INSTR_NO == 'C4-A04-PL-01').filter(and_(
        PointVal.DT > '2017-05-01 16:00:00', PointVal.DT < '2017-05-03 16:00:00')).all()
 
```
执行代码只返回第一条数据:
C4-A04-PL-01         2017-05-02 00:00:00.000-1.7614 11.0864


而我在数据库中查询的数据有如下多条:
C4-A04-PL-01         2017-05-02 00:00:00.000-1.7614 11.0864
C4-A04-PL-01         2017-05-02 08:00:00.000-1.7172 11.3588
C4-A04-PL-01         2017-05-03 08:00:00.000-1.7221 11.3398
C4-A04-PL-01         2017-05-03 16:00:00.000-1.7831 10.9346
C4-A04-PL-01         2017-05-04 00:00:00.000-1.8004 10.9532
C4-A04-PL-01         2017-05-04 08:01:00.000-1.6868 11.3043
C4-A04-PL-01         2017-05-04 16:00:00.000-1.7960 10.8514
C4-A04-PL-01         2017-05-05 00:00:00.000-1.7828 10.9263
C4-A04-PL-01         2017-05-05 08:00:00.000-1.6734 11.1985


----------------------------------------------------------------------------------------------

已解答:

主键设置错误,该数据表的主键应为INSTR_NO和DT。只设置INSTR_NO为主键导致主键不能重复,只显示一条数据。