[英]Select data from one table, arrange by a sum of data from another
客户正在寻找要在其网站上实施的积分系统,我正在努力根据收集的积分数量来向用户显示,我希望有人可以在这里为我提供帮助,并向我指出正确的方向使此代码正常工作。
我正在从ap_users
选择所有数据,并且在代码中,我也试图从ap_points
选择所有数据,尽管我不需要任何一个表中的所有数据,具体来说,我只需要:
ap_users:
user_id
first_name
last_name
display_img
hub_access
ap_points:
user_id
points_added
我认为选择所有数据可能是最简单的方法,让您决定。
我正在尝试选择并显示hub_access = '1'
所有用户, hub_access = '1'
总points_added
最高的顺序排序。 点是按行分别添加的,因此需要加起来(这就是为什么我有sum
函数的原因)。
$sql = "SELECT * FROM `ap_users`, `ap_points` WHERE `hub_access` = '1' ORDER BY sum(points_added) DESC";
我还尝试将其配置为特定的表,例如:
ap_users.hub_access
和ORDER BY sum(ap_points.points_added)
但它们也不起作用。
当前代码是没有显示结果还是显示没有错误的单个结果? 我不确定是否可能需要使用某种Group By
函数来连接两个表中的user_id?
SUM是一种汇总功能。 如果要每个user_id的总和,则应按user_id分组。
就像是
SELECT *, sum(points_added) as sum_points FROM app_users
JOIN app_points ON app_users.user_id = app_points.user_id
WHERE `hub_access` = '1'
GROUP BY app_users.user_id
ORDER BY sum_points;
我没有测试过该查询,但是应该可以使您对解决方案有所了解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.