我有3個表數據庫:MySQL的數子查詢
- 股票
- stocksplits
- 分紅
有一個股票和stocksplits之間一對多的關係,與股票之間和股息。對於每一個股票我想顯示stocksplits和分紅的數量:
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上。
我相信你錯過了查詢的後半部分 –
@lc:fixed,謝謝。 – Jimmy
你可以發佈一些示例數據,說明它的正確位置和錯誤位置? –