gpt4 book ai didi

MySQL 左连接计数不正确

转载 作者:行者123 更新时间:2023-11-29 02:58:50 24 4
gpt4 key购买 nike

我目前有两个表,一个包含预算信息,另一个包含预算中的每一行。我正在尝试从预算表中选择信息,并获取每个预算中的行数。我当前的 SQL 是:

SELECT actual.ActualID, DateReceived, DateStart, DateEnd, ActualTotal, count(SchActualID) as NumberOfSch 
FROM actual
LEFT JOIN schactual on actual.ActualID = schactual.ActualID
where CentreID = 29 order by DateEnd DESC

我认为它按预期工作,但它似乎没有计算出正确的值。 schactual 表目前有 4 行,其中只有一行包含 ActualID 29,但如果我运行上面的查询,NumberOfSch 是 3。对我在这里做错了什么有什么想法吗?

示例输入:centerID = 29

或者

中心ID = 30

示例输出:假设我按上面的方式运行查询,它在实际表中有一个预算,在 schActual 表中有一个计划。预期的输出将是:

实际ID |收到日期 |日期开始 |日期结束 |实际总数 | NumberOfSch

24 | 2014-11-02 | 2013-03-31 | 2014-03-31 | 1000 | 1

当前输出为:

实际ID |收到日期 |日期开始 |日期结束 |实际总数| NumberOfSch

24 | 2014-11-02 | 2013-03-31 | 2014-03-31 | 1000 | 2

表结构如下:实际:

  • 实际 ID(PK)
  • 中心 ID(FK)
  • 收到日期
  • 开始日期
  • 日期结束
  • 实际总计

实际:

  • SchActualID (PK)
  • 实际 ID(FK)
  • 学号
  • 学名
  • 费用
  • 等..

最佳答案

我认为您只需向该查询添加分组依据,就可以了。

以下是您的部分查询以简化解决方案:

更新:

SELECT actual.actualid, count(schactualid) AS NumberOfSch 
FROM actual
LEFT JOIN schactual on actual.actualid = schactual.actualid
WHERE centreid = 29
GROUP BY actual.actualid

SQLFiddle:http://sqlfiddle.com/#!2/a0f3af/8

关于MySQL 左连接计数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com