mysql直接添加金额_mysql – 如何在Laravel中添加金额约束的总和?

我有一个包含以下关系的数据库:

有项目 – 人们可以购买的东西,也有user_id,

有支持者 – 购买的人,

有订单 – 每个订单都是由Backer购买的一个项目(Backer只能购买一次每个项目).这是一笔金额 – 显示支持者购买项目的费用

0eqSU.png

我需要的是编写以下查询 – 给定$user_id,$count和$sum找到所有已投资至少$count数量的项目的Backers,其user_id等于$user_id,并获得这些项目的购买总和高于$sum.

Backer::whereHas('projects', function ($q) use ($sum, $userId){

$q->where('user_id', $userId);

}, '>=', $leastProjectCount)->get();

但它并不限制购买金额

更新:

所以我提出了这个问题:

select * from `backers` \r\n

WHERE id > 0 \r\n

AND (select count(*)\r\n

FROM `projects` \r\n

inner join `orders` on `projects`.`id` = `orders`.`project_id` \r\n

where `backers`.`id` = `orders`.`backer_id` \r\n

and `user_id` = 6 \r\n

and exists (\r\n

select * \r\n

from `tags` \r\n

inner join `project_tag` on `tags`.`id` = `project_tag`.`tag_id` \r\n

where `projects`.`id` = `project_tag`.`project_id` \r\n

and `id` in (27)\r\n

) \r\n

) >= 1 \r\n

AND (select sum(orders.amount)\r\n

FROM `projects` \r\n

inner join `orders` on `projects`.`id` = `orders`.`project_id` \r\n

where `backers`.`id` = `orders`.`backer_id` \r\n

and `user_id` = 6 \r\n

and exists (\r\n

select * \r\n

from `tags` \r\n

inner join `project_tag` on `tags`.`id` = `project_tag`.`tag_id` \r\n

where `projects`.`id` = `project_tag`.`project_id` \r\n

and `id` in (27)\r\n

) \r\n

) >= 12

请注意,子查询几乎相同,只是第一个使用COunt(*)而第二个使用sum(orders.amount).并且还要注意,如果设置了所有参数,则运行此查询,但是如果未设置某些参数,则可以更短.我得到的问题是我没有这样的查询分页.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值