此 SQL 部分工作,但放在一起我得到一个简单的错误:
组功能使用无效
我假设它指的是 UPDATE 语句本身,因为我没有使用 GROUP 语句,但我不知道为什么。
我的查询:
UPDATE `Scores` s
INNER JOIN `Players` p ON s.PlayerID = p.PlayerID
INNER JOIN (SELECT PlayerID, Number FROM `NumberHistory` h WHERE PlayerID = 136 ORDER BY Created DESC LIMIT 1) f ON p.PlayerID = f.PlayerID
INNER JOIN (
SELECT Number FROM `Players` WHERE PlayerID = 136
UNION ALL
SELECT Number FROM `NumberHistory` WHERE PlayerID = 136
) m
LEFT OUTER JOIN (
SELECT PlayerID, COUNT(PlayerID) Activity
FROM `NumberHistory` WHERE Created BETWEEN DATE_ADD(NOW(), INTERVAL -7 DAY) AND NOW()
) a ON p.PlayerID = a.PlayerID
SET s.PlayerID=p.PlayerID, s.PlayerName=p.PlayerName, s.Number=MAX(m.Number), s.PreviousNumber=f.Number, s.Diff=(p.Number-IFNULL(f.Number,0)), s.Activity=IFNULL(a.Activity, 0)
WHERE s.PlayerID = 136