gpt4 book ai didi

mysql - MySQL Count子查询

转载 作者:行者123 更新时间:2023-12-01 07:42:28 24 4
gpt4 key购买 nike

我有一个包含3个表的数据库:

  • 股票
  • 拆分
  • 红利

  • 股票和股票分割之间,以及股票和股息之间存在一对多的关系。对于每个股票,我想显示股票分割和股息的数量:
    SELECT equities.Symbol, 
    (SELECT COUNT(*)
    FROM stocksplits
    WHERE stocksplits.EquityID = equities.InstrumentID) as `# Splits`,
    (SELECT COUNT(*)
    FROM dividends
    WHERE dividends.EquityID = equities.InstrumentID) as `# Dividends`
    FROM equities

    该查询似乎运行良好,尽管我怀疑它效率低下。如何将其重构为更快?没有DBMS(通过.net到MySQL服务器的SQL查询),假定每个表的主ID上都存在索引。

    最佳答案

    计算PK而不是*可能已经有所帮助:

    SELECT equities.Symbol, 
           (SELECT COUNT(stocksplitsID)
              FROM stocksplits
             WHERE stocksplits.EquityID = equity.InstrumentID) as `# Splits`,
           (SELECT COUNT(dividendsid)
              FROM dividends
             WHERE dividends.EquityID = equities.InstrumentID) as `# Dividends`
    FROM equities

    关于mysql - MySQL Count子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297759/

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