Python 按最流行的顺序订购产品(计数表并通过排序连接到另一个)-sqlalchemy
我在使用ORM sqlalchemy(烧瓶sqlalchemy)时遇到问题 我有这两个db模型Python 按最流行的顺序订购产品(计数表并通过排序连接到另一个)-sqlalchemy,python,sql,flask,sqlalchemy,Python,Sql,Flask,Sqlalchemy,我在使用ORM sqlalchemy(烧瓶sqlalchemy)时遇到问题 我有这两个db模型 class Stock(db.Model): id = db.Column(db.Integer, primary_key=True) ref = db.Column(db.String(30), nullable=False) desc = db.Column(db.String(30), nullable=False) price = db.Column(db.Fl
class Stock(db.Model):
id = db.Column(db.Integer, primary_key=True)
ref = db.Column(db.String(30), nullable=False)
desc = db.Column(db.String(30), nullable=False)
price = db.Column(db.Float, nullable=False)
stock = db.Column(db.Float, nullable=False)
image = db.Column(db.String(30), nullable=True)
sales = db.relationship("Sales", backref="product", lazy=True)
def __repr__(self):
return f"Stock(Id:'{self.id}', Text:'{self.ref}...')"
class Sales(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Float, nullable=False)
date = db.Column(db.DateTime(), nullable=False, default=datetime.datetime.utcnow)
pcs = db.Column(db.Integer, nullable=False)
stock_id = db.Column(db.Integer, db.ForeignKey("stock.id"), nullable=False)
def __repr__(self):
return f"Sales(Id:'{self.id}', Text:'{self.pcs}...')"
我想通过用户输入来排列“Stock”表。这是我用下面的方法实现的
Stock.query.filter(Stock.desc.like(f"%{data['search']}%"))
但我想组织这些结果,从“销售”表中购买该产品的销售数量
我相信这很容易。但我似乎无法应付
我试着按“销售”表中的产品对_进行分组,但没有成功
SQL如下所示,但我想使用ORM而不是纯SQL
select *
from Stock st
join (select stock_id, count(*) as total_sales from Sales group by stock_id) sl
on st.id = sl.stock_id
where st.desc like '%bread%'
order by total_sales
有人能帮忙吗