簡體   English   中英

MySQL查詢返回錯誤的分組數據

[英]mysql query returns wrong for grouped data

這是稱為匹配的mysql表。 它包含用戶下注的匹配項,發布它的日期和結果(獲勝,失敗等)。

http://imgur.com/Umt5Q4m

在第一個查詢中,我在用戶個人資料上顯示按月分組的下注

SELECT COUNT(*),date,SUM(stake), AVG(stake),result 
FROM matches 
WHERE u_id='$id11' 
GROUP BY DATE_FORMAT(date, '%Y/%m') 
ORDER BY DATE_FORMAT(date, '%Y/%m') DESC 
LIMIT $startrow,10

現在,我需要做的就是顯示這些賭注贏了多少,輸了多少,就像您在下面的照片中看到的那樣

http://imgur.com/kSOF6Pi

最好的方法是什么?

我已經嘗試添加另一個查詢,像這樣

SELECT COUNT(*) 
FROM matches WHERE u_id='$id11' AND result='win' 
GROUP BY DATE_FORMAT(date, '%Y/%m') 
ORDER BY DATE_FORMAT(date, '%Y/%m') DESC LIMIT $startrow,10

並針對每個結果進行相同的查詢,但問題是經緯度表示本月沒有任何下注,因此本月未返回任何內容,因此表格順序錯誤。

如何在一個查詢中獲得所有贏/輸,您的過濾器正在過濾結果,因此您不會獲得查詢的結果以丟失匹配項

SELECT 
 SUM(result='win') `win_count`,
 SUM(result='lost') `lost_count`
FROM matches 
WHERE u_id='$id11'  
GROUP BY DATE_FORMAT(date, '%Y/%m') 
ORDER BY DATE_FORMAT(date, '%Y/%m')
DESC LIMIT $startrow,10

在上面的查詢中,我將SUM函數與表達式一起使用,當在SUM使用表達式時,將導致布爾值,並且表達式為true時為1,如果表達式結果為false,則為0,換句話說,您可以簡單地通過sum來獲得計數通過您的條件發揮作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM