sqlalchemy 多表联查 获取其他表的字段值

使用sqlalchemy进行联合查询时,使用add_entity()方法将第二个表添加进来,查询的结果是一个由多个表的记录组成的元组列表。例如:
将OrderDetail表和Goods表连接,计算OrderDetail表的payment字段的值,需要Goods表的price字段与OrderDetail表的quantity字段。
这里payment是DECIMAL类型,quantity字段的值是整数,需要转换为Decimal类型再计算。

lines = session.query(OrderDetail).join(Goods, OrderDetail.goods_id == Goods.goods_id).add_entity(Goods).all()
for line in lines:
	# line是两个表的每条记录组成的元祖。OrderDetail表的字段都在line[0]中,Goods表的字段都在line(1)中。
    line[0].payment = line[1].price * Decimal(line[0].quantity)
    print(line[0].payment)
session.commit()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章