簡體   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