我目前有一個顯示用戶庫存值的表格。它可以作業,但它以隨機的順序顯示所有用戶和他們的庫存值。我希望將該表限制為僅顯示前 5 個降序的庫存值。
。這個資料跨越了三個表。DB Fiddle
echo "<table>
<th>庫存值</th>
<th>用戶名</th>"。
//選擇我們想要的用戶(已驗證的用戶)。。
$refineUsers=$db->query("SELECT userID FROM users WHERE accountVerified = 'true'") 。
while($users=$db->fetch_row($refineUsers)) {
//獲取我們想要的用戶的庫存。
$fetchInventories=$db->query("SELECT * FROM inventories WHERE userID = '"/span>. $users['userID']."'")。)
$totalInventoryValue=0。
while($inventories=$db->fetch_row($fetchInventories) ) {
//取專案的值。
$fetchItemsData=$db->query("SELECT value FROM items WHERE itemID = '"/span>. $inventories['itemID']."'")。)
while($items=$db->fetch_row($fetchItemsData)) {
//計算用戶庫存中各種物品的價值。
$totalItemsValue=($items['value'] * $inventories[' quantity'])。
//計算用戶庫存的總價值。
$totalInventoryValue =$totalItemsValue。
}
}
//顯示每個用戶的庫存值。。
echo "<td>".money_format($totalInventoryValue)."</td> ";
echo "<td>". username($users['userID'])."</td> ";
echo "<tr>"。
}
echo "</table>";
輸出結果是這樣的:
| 存貨價值 | 用戶名Accounts2 | 70000 | 169000 |
|---|
我猜這可以用JOIN查詢來完成,但我不是很有經驗,以前沒有做過跨越三個表的查詢。我不知道如何使用這些嵌套查詢來獲得前5個庫存總數,并將它們按降序排列。
uj5u.com熱心網友回復:
<醇>SUM()函式中進行組織,使專案數量與正確的專案值相關聯。
SQL:(Demo)
SELECT username,
累計(SUM)(
IF(
inventoryItemID = itemID,
inventoryQuantity * itemValue,
0(
)
) AS總計
FROM users
JOIN inventory ON userID = inventoryUserID
JOIN items ON inventoryItemID = itemID
WHERE accountVerified = 'true'/span>
GROUP BY username
ORDER BY total DESC
LIMIT5
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320161.html
標籤:
上一篇:SVG反轉顏色
