【发布时间】:2014-03-12 19:22:11
【问题描述】:
所以我有这个说法
SELECT h.usd FROM historic h, block b
WHERE UNIX_TIMESTAMP(h.timestamp) <=b.block_nTime
AND NOT EXISTS
(SELECT 'NEXT' FROM
historic h2 where h2.timestamp > h.timestamp
AND UNIX_TIMESTAMP(h2.timestamp) <=b.block_nTime) AND b.block_id = 'id'
我正在尝试将其转换为 python sqlalchemy 语句 - 这就是我得到的结果。
from sqlalchemy import *
from sqlalchemy.sql import func
from sqlalchemy.orm import Session
#{...}
h = alias(historic)
h2 = alias(historic)
session.query(h.c.usd).filter(
and_(h.c.timestamp <= block.c.block_nTime,
~exists(
func.next_value(Sequence(h2.c.timestamp))
).where(
and_(h2.c.timestamp > h.c.timestamp, h2.c.timestamp <= block.c.block_nTime
) & block.c.id == block_id)))
我也是如何得到这个错误的:
sqlalchemy.exc.ArgumentError: columns argument to select() must be a Python list or other iterable
认为我没有正确使用Sequence()。可能是什么问题?
提前致谢!
【问题讨论】:
标签: python mysql sqlalchemy flask-sqlalchemy