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