[英]Combining two MYSQL Queries into a single one
我正在嘗試將兩個MYSQL查詢合並為一個。 我想做的是選擇每天添加的第一行和最后一行,然后從當天的第一列中減去該天的最后一列,然后輸出。 這將為我帶來當天那場比賽的XP凈收益。
以下是我的兩個查詢,它們的唯一區別是按DESC與ASC排序日期。 我要互相減去的數據庫中的列是“ xp”
$query = mysql_query("
SELECT * FROM (SELECT * FROM skills WHERE
userID='$checkID' AND
skill = '$skill' AND
date >= ".$date."
ORDER BY date DESC) as temp
GROUP BY from_unixtime(date, '%Y%m%d')
");
$query2 = mysql_query("
SELECT * FROM (SELECT * FROM skills WHERE
userID='$checkID' AND
skill = '$skill' AND
date >= ".$date."
ORDER BY date DESC) as temp
GROUP BY from_unixtime(date, '%Y%m%d')
");
SELECT FROM_UNIXTIME(date, '%Y%m%d') AS YYYYMMDD, MAX(xp)-MIN(xp) AS xp_gain
FROM skills
WHERE userID = '$checkID'
AND skill = '$skill'
AND date >= $date
GROUP BY YYYYMMDD
假設XP一直在增加,因此不需要使用時間來查找開始和結束值。
如果這不是正確的假設,那么您想要的是這樣的:
SELECT first.YYYYMMDD, last.xp - first.xp
FROM (subquery1) AS first
JOIN (subquery2) AS last
ON first.YYYYMMDD = last.YYYYMMDD
將subquery1
替換為返回每天第一行的查詢,將subquery2
替換為返回每天最后一行的查詢。 您在問題中發布的查詢不會執行此操作,但是您可以找到許多SO問題,這些問題說明了如何獲得每個組的最高或最低行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.