客户正在寻找在她的网站上实施的积分系统,我很难根据收集的积分显示用户,我希望有人可以帮助我在这里并指出我正确的方向,以使此代码正常工作。
我正在从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'
的所有用户,并按照最高优先级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_ids?
答案 0 :(得分:0)
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;
我没有测试过该查询,但这应该让您了解解决方案。