Php 如何将这两个查询合并为一个查询并避免额外的代码
我在数据库中有两个表,表用户列出了所有用户及其邀请者(推荐者),表捐赠列出了所有捐赠 两个表之间的唯一连接是表中的用户id,它是表用户中的id(主AI) 我想做的是获得表用户中所有用户的计数,这些用户的ref='$referer',然后查看他们中有多少人已经捐赠,并且他们在捐赠表中(每个用户可以多次捐赠,因此不应将2个捐赠计算为2个用户) 我所尝试的: 首先,我得到了邀请者的每个参考号Php 如何将这两个查询合并为一个查询并避免额外的代码,php,mysql,Php,Mysql,我在数据库中有两个表,表用户列出了所有用户及其邀请者(推荐者),表捐赠列出了所有捐赠 两个表之间的唯一连接是表中的用户id,它是表用户中的id(主AI) 我想做的是获得表用户中所有用户的计数,这些用户的ref='$referer',然后查看他们中有多少人已经捐赠,并且他们在捐赠表中(每个用户可以多次捐赠,因此不应将2个捐赠计算为2个用户) 我所尝试的: 首先,我得到了邀请者的每个参考号 SELECT id FROM users WHERE ref='$referrer' 然后我把它放在一个wh
SELECT id FROM users WHERE ref='$referrer'
然后我把它放在一个while()循环中,然后我检查每个人是否有捐赠
SELECT * FROM donations WHERE user_id='$id'
如果发现它们的计数为1+
问题
问题是,如果一个用户邀请了+500人,那么我就用PHP在一个循环中发送500个查询,这需要时间和资源
需要什么
我需要一个带有子查询的查询,以仅获取推荐人id(ref='$referer'),并向我提供所有用户X的推荐(例如,表用户中ref='55'的每个用户)的计数,这些用户在捐款表中也至少有一个捐款
比如:
SELECT COUNT(*) FROM donations WHERE user_id = (SELECT id as user_id FROM users WHERE ref='$referer')
谁能帮我一下吗?试试这个:
SELECT users.id, COUNT(*) `donations_count`
FROM users
INNER JOIN donations ON user.id = donations.user_id
WHERE users.ref='$referrer'
GROUP BY users.user_id
试试这个:
SELECT users.id, COUNT(*) `donations_count`
FROM users
INNER JOIN donations ON user.id = donations.user_id
WHERE users.ref='$referrer'
GROUP BY users.user_id
谢谢,$referer的活动转介的最终计数是获取mysqli_num_行($result);在PHP中的查询结果如何?无论我在$referer中输入了什么,此查询始终返回相同的结果,即每个用户的所有捐赠计数(与$referer无关)谢谢,因此$referer的活动引用的最终计数是获得mysqli_num_行($result);在PHP中的查询结果是什么?无论我在$referer中输入了什么,这个查询总是返回相同的结果,即每个用户的所有捐赠计数(与$referer无关)。谢谢,我尝试了,但出现了错误:字段列表中的“id”列模糊不清将“SELECT id”更改为“SELECT users.id”,这应该会解决问题,我试过了,但出现了错误:字段列表中的列“id”模棱两可将“SELECT id”更改为“SELECT users.id”,这应该可以解决问题