首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合子选择

组合子选择
EN

Stack Overflow用户
提问于 2010-07-16 00:37:47
回答 1查看 158关注 0票数 0

我必须将一个为mysql5编写的查询重写为mysql4.0,它不支持sub select,我有一个这样的查询:

代码语言:javascript
复制
select a,
       c,
       (select count(*) from A) as e 
          from (select b, sum(e) as a 
                  from B 
                 where h = "foo" 
              group by b) TABLEB,
       (select sum(d),
               count(*) as c 
          from C 
         where d = "bar") TABLEC

我尝试在一个请求中合并TABLEA和TABLE B,但是sum()结果不正确( sum(e)值变成sum(e)乘以TABLEC的行数)

所有分组的值都会变成实际值的倍数(取决于行数)。

对于MySQL4.0,是否可以将此查询转换为一个查询,或者我必须将其拆分为三个查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-16 00:54:27

您到底为什么要迁移到MySQL 4.0?这是古老的历史,缓慢,错误和不安全。如果您使用的托管服务仍在运行MySQL 4.0,请切换到其他托管服务。

但不管怎样,我看不出为什么要将这些查询合并为一个查询,即使您使用的是MySQL 5.0。每个表的结果与其他表没有关系。

只需运行三个查询:

代码语言:javascript
复制
select b, sum(e) as esum from B where h = 'foo' group by b;

select sum(d) as dsum, count(*) as c from C where d = 'bar';

select count(*) as acount from A;

附注:在SQL中对字符串文字使用单引号。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3257795

复制
相关文章

相似问题

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