首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中连接两个子查询

在MySQL中连接两个子查询
EN

Stack Overflow用户
提问于 2015-10-22 10:22:21
回答 1查看 3.1K关注 0票数 0

我有两个MySQL子查询,它们本身工作正常,但是当我将它们连接在一起时,第二列给出了不正确的值。

这两个查询简单地显示了一匹马在当前比赛之前的总比赛次数,以及该马在今天之前赢得的次数之和。

我用不同的ids尝试过每种类型的连接和连接,但是我无法找到正确的组合。

输出结果通过竞赛结果有效地显示比赛结果。

查询A-总竞赛

代码语言:javascript
复制
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-胜利和

代码语言:javascript
复制
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

谢谢你们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-23 08:29:27

代码语言:javascript
复制
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
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33278752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档