我似乎无法解决这个查询。我确定它需要子查询,但我没有选择。我的大脑无法处理这个什么的。我需要帮助 :)
小介绍
我有一个投注赔率网站。每隔 15 分钟,我会导入来自不同博彩公司的特定赛事的最新赔率(赢/平/输 - 或 1/X/2)。
赔率表的每一行都有odds_type
('1', 'X' 或 '2'),odds_index
即实际赔率,bookmaker_id
和event_id
。
但同样重要的是:created_at
因为我需要处理最新导入的赔率。由于显而易见的原因,这非常重要。
设想
在下表中,我们正在使用event_id
#1 的进口赔率。
需要查询
- 从所有博彩公司中分离出最新的输入赔率
event_id
= 1(在本例中为 9 条记录) - 在该集合中,返回“1”、“X”、“2”的最高
odds_index
记录。odds_type
现在我更喜欢使用 Rails 范围来做到这一点,所以我可以使用@event.best_odds1
and @event.best_odds2
,但如果它有效,我会采取任何方法。5天以来一直在为此绞尽脑汁。需要解决它。
结果
查询后我得到 3 条记录,因此我可以显示“事件 #1 的最佳赔率”。
桌子
博彩公司
ID | NAME
----------------------
1 | Unibet
2 | 888
3 | Ladbrokes
活动
ID | NAME
--------------------------
1 | Holland vs Denmark
2 | England vs Germany
3 | France vs Spain
赔率
ID | OT | OI | BI | EI | CREATED_AT
---------------------------------------------------
(first import from the bookies)
1 | '1' | 2.4 | 1 | 1 | 2010-06-10 15:00
2 | 'X' | 1.5 | 1 | 1 | 2010-06-10 15:00
3 | '2' | 6.2 | 1 | 1 | 2010-06-10 15:00
4 | '1' | 2.2 | 2 | 1 | 2010-06-10 15:58
5 | 'X' | 1.8 | 2 | 1 | 2010-06-10 15:58
6 | '2' | 5.2 | 2 | 1 | 2010-06-10 15:58
7 | '1' | 2.8 | 3 | 1 | 2010-06-10 16:56
8 | 'X' | 1.3 | 3 | 1 | 2010-06-10 16:56
9 | '2' | 7.1 | 3 | 1 | 2010-06-10 16:56
(last import from the bookies)
10 | '1' | 2.5 | 1 | 1 | 2010-06-11 17:10
11 | 'X' | 1.3 | 1 | 1 | 2010-06-11 17:10
12 | '2' | 6.4 | 1 | 1 | 2010-06-11 17:10
13 | '1' | 2.1 | 2 | 1 | 2010-06-11 18.12
14 | 'X' | 1.2 | 2 | 1 | 2010-06-11 18:58
15 | '2' | 6.2 | 2 | 1 | 2010-06-11 18:58
16 | '1' | 1.8 | 3 | 1 | 2010-06-12 14:56
17 | 'X' | 2.3 | 3 | 1 | 2010-06-12 14:56
18 | '2' | 5.1 | 3 | 1 | 2010-06-12 14:56
缩写列名以适应屏幕
OT = odds_type
OI = odds_index
BI = bookmaker_id
EI = event_id