我有两个MySQL子查询,它们本身工作正常,但是当我将它们连接在一起时,第二列给出了不正确的值。
这两个查询简单地显示了一匹马在当前比赛之前的总比赛次数,以及该马在今天之前赢得的次数之和。
我用不同的ids尝试过每种类型的连接和连接,但是我无法找到正确的组合。
输出结果通过竞赛结果有效地显示比赛结果。
查询A-总竞赛
SELECT
date,
raceref,
horse,
win,
(
SELECT ifnull(count(raceref),0) as totalraces
FROM results
WHERE horse = t.horse
AND date < t.date
ORDER BY date DESC
) AS totalraces_prior
FROM results t
group by horse, raceref
order by raceref asc;查询B-胜利和
SELECT
date,
raceref,
horse,
win,
(
SELECT ifnull(sum(win),0) as wins
FROM results
WHERE horse = t.horse
AND date < t.date
ORDER BY date DESC
) AS totalwins_prior
FROM results t
group by horse, raceref
order by raceref;我想要一双全新的眼睛。
这是一个SQL,显示了我的联接。
http://www.sqlfiddle.com/#!2/87c54da/1
为了更仔细地检查这个问题,在我加入这两个查询时,“汇总”列一直给出不正确的值。或者,实际上,不管我添加什么列,第二个列都会产生不正确的值。
数据库很大,SQL不能处理太大的任何东西,所以这里有一个所发生的事情的图像,因为在SQL中它不是很明显。
http://tinypic.com/r/o0x7i8/8
谢谢你们。
发布于 2015-10-23 08:29:27
select date, raceref, horse, win, totalraces, totalwins, (totalwins / totalraces) as winPercentage
from (
select date, raceref, horse, win,
(
SELECT ifnull(count(raceref),0)
FROM results
WHERE horse = t.horse
AND date < t.date
ORDER BY date DESC
) AS totalraces,
(
SELECT ifnull(sum(win),0)
FROM results
WHERE horse = t.horse
AND date < t.date
ORDER BY date DESC
) AS totalwins
FROM results t
group by horse, raceref
order by raceref asc
) t
;https://stackoverflow.com/questions/33278752
复制相似问题