繁体   English   中英

从一个表中选择数据,按另一表中的数据总和排列

[英]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_accessORDER 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM