1

我有以下 SQLITE 代码

SELECT x.t,
CASE WHEN S.Status='A' AND M.Nomorebets=0 THEN S.PriceText ELSE '-' END AS Show_Price
FROM sb_Market M
LEFT OUTER JOIN
(select 2010 t union
select 2020 t union
select 2030 t union
select 2040 t union
select 2050 t union
select 2060 t union
select 2070 t
) as x
LEFT OUTER JOIN sb_Selection S ON
S.MeetingId=M.MeetingId AND
S.EventId=M.EventId AND
S.MarketId=M.MarketId AND
x.t=S.team
WHERE M.meetingid=8051 AND M.eventid=3 AND M.Name='Correct Score'

在当前的界面限制下,我必须使用上面的代码来确保如果缺少一个选择,则会出现一个“-”。

一些提要类似于以下内容

SelectionId 名称 团队状态 PriceText
====================================
1 巴尼 2010 A 10
2 吉姆 2020 A 5
3 马特 2030 A 6
4约翰2040 A 8
5 保罗 2050 A 15/2
6 弗兰克 2060 S 10/11
7 汤姆 2070 A 15

使用上面的 SQL 代码是最快和最有效的吗?

请提供任何可以帮助的建议。带有更新的消息会更好。

4

1 回答 1

0

你可以做的一些事情:

  1. 确保 sb_Selection(MeetingId, EventId, MarketId) 上有索引
  2. 确保 sb_Market(MeetingId, EventId, MarketId) 上有索引
  3. 如果您需要更好的性能,请考虑覆盖索引(例如,您可以覆盖 S.team、S.Status、S.PriceText)
于 2009-08-02T13:22:23.913 回答