sqlalchemy查询

ymdaylpp  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(348)

你好,我正在用三个模型查询我的数据库,
产品、salesdetails和salesreturns
我想查询产品型号并仅返回其id不在salesdetails中的产品,或者salesdetails.sale\u id是否在salesreturns.sale\u id中
基本上我想退回所有未售出或已退回的产品
我试过这样的方法

P1= Product.query.outerjoin(salesDetails)
P2=p1.outerjoin(SalesReturns)
P3=p2.filter(or_(SalesDetails.product_id==None,SalesDetails.sale_id==SalesReturn.sale_id)).all

问题是不管产品卖不卖都要退货,
我试着通过两次销售同一产品并将saleid放在salereturns中来测试它
但是查询返回所有产品,即使第二次销售还没有返回。
我对数据库和sqlalchemy也是一个初学者
如果您能帮忙,我们将不胜感激。
如果你不明白我的意思,就在评论里问我。
谢谢您。

oxf4rvwz

oxf4rvwz1#

我不太了解您的数据模型,但您可以这样做:

session.query(Product).outerjoin(SalesDetails, SalesDetails.product_id == None).\
outerjoin(SalesReturn, SalesReturn.sale_id == SalesDetails.sale_id).all()

相关问题