Jim*_*mmy 3 mysql sql subquery aggregate-functions
我有一个包含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
Run Code Online (Sandbox Code Playgroud)
该查询似乎运行正常,但我怀疑它是低效的.怎样才能更快地重构?没有DBMS(通过.net到MySQL服务器的SQL查询),假设索引存在于每个表的主ID上.
Hen*_*ine 10
计算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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32148 次 |
| 最近记录: |