1
A Sensor
有许多Reading
s,每个值在时间戳处具有值和类型。我想在Sensor
上创建一个属性,以列出每种类型的最新值。我知道如何在SQL中得到这个,但我怎样才能用SQLAlchemy构造它?获取最新在SQLAlchemy中传感器的每种类型的读取值
select * from (
select * from Readings
left join Sensors on Readings.SensorID = Sensors.SensorID
where Readings.SensorID = passed_id order by Timestamp desc
) as tmp group by ValueType;
class Reading(db.Model):
__tablename__ = 'Readings'
index = db.Column('id', db.Integer, primary_key=True)
sensor_id = db.Column('SensorID', db.Integer, db.ForeignKey('Sensors.SensorID'))
sensor_type = db.Column('SensorType', db.Integer)
timestamp = db.Column('Timestamp', db.DateTime)
value_type = db.Column('ValueType', db.Integer)
value = db.Column('Value', db.Float)
class Sensor(db.Model):
__tablename__ = 'Sensors'
index = db.Column('id', db.Integer, primary_key=True)
id = db.Column('SensorID', db.Integer, unique=True)
type = db.Column('SensorType', db.Integer)
location = db.Column('Location', db.String(50))
readings = db.relationship('Reading', backref='SensorID', lazy='dynamic')
我编辑'database.'到'db.'只是为了减少冗长和可读性。使用'db.'是Flask-SQLAlchemy的标准做法。 – davidism