V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coolicer
V2EX  ›  程序员

Mysql 用了 having,怎么计算总数了。

  •  
  •   coolicer · 2014-06-20 10:18:11 +08:00 · 2806 次点击
    这是一个创建于 3812 天前的主题,其中的信息可能已经有所发展或是发生改变。
    SELECT *,一个表达式 AS flag FROM (这里2个表INNER JOIN) AS c

    INNER JOIN 表D AS d

    ON c.part = d.part HAVING flag='1'

    现在having之后是2条结果,我直接用 select count(*) xxxx 结果是4,不准确。
    5 条回复    2014-06-20 15:58:19 +08:00
    hennywei
        1
    hennywei  
       2014-06-20 11:00:17 +08:00
    group by 呢
    qq2511296
        2
    qq2511296  
       2014-06-20 14:12:46 +08:00
    select count(t.*) from (
    SELECT *,一个表达式 AS flag FROM (这里2个表INNER JOIN) AS c

    INNER JOIN 表D AS d

    ON c.part = d.part HAVING flag='1'
    ) t

    楼主这样测试结果是4?

    HAVING好像是最后才执行 一般都是放在group by 后面的
    coolicer
        3
    coolicer  
    OP
       2014-06-20 15:38:18 +08:00
    @qq2511296 我测试了是放后面才行。我直接在前端算长度了就知道总数,毕竟不多。
    liprais
        4
    liprais  
       2014-06-20 15:45:50 +08:00
    没看懂什么意思,lz不妨贴个例子?
    coolicer
        5
    coolicer  
    OP
       2014-06-20 15:58:19 +08:00
    @qq2511296 刚才没看清你的例子,我没有试。

    @liprais 目测2楼的应该可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:40 · PVG 13:40 · LAX 21:40 · JFK 00:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.