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()

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