• 请不要在回答技术问题时复制粘贴 AI 生成的内容
coolicer
V2EX  ›  程序员

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

  •  
  •   coolicer · Jun 20, 2014 · 3246 views
    This topic created in 4389 days ago, the information mentioned may be changed or developed.
    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 replies    2014-06-20 15:58:19 +08:00
    hennywei
        1
    hennywei  
       Jun 20, 2014
    group by 呢
    qq2511296
        2
    qq2511296  
       Jun 20, 2014
    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
       Jun 20, 2014
    @qq2511296 我测试了是放后面才行。我直接在前端算长度了就知道总数,毕竟不多。
    F281M6Dh8DXpD1g2
        4
    F281M6Dh8DXpD1g2  
       Jun 20, 2014
    没看懂什么意思,lz不妨贴个例子?
    coolicer
        5
    coolicer  
    OP
       Jun 20, 2014
    @qq2511296 刚才没看清你的例子,我没有试。

    @liprais 目测2楼的应该可以
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4708 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 05:37 · PVG 13:37 · LAX 22:37 · JFK 01:37
    ♥ Do have faith in what you're doing.