首页 > 解决方案 > 选择指定记录后的下 3 条记录时缺少数据

问题描述

我试图在 SQL 中的选择查询之外选择接下来的 3 个或更多记录。我目前正在为此使用 SQLite Pro 3.5.87。

所以我有这个查询:

SELECT * FROM winners_night WHERE winner_1 > 86 ORDER BY draw_date LIMIT 3

这是我得到的错误输出:

draw_date   winner_1    winner_2    winner_3
2015-01-06  87          40          95
2015-01-18  95          66          20
2015-01-28  96          25          94

现在,winner_1(在本例中为 86)将 draw_date 设置为 2015-01-05,因此所需的输出应该是:

draw_date   winner_1    winner_2    winner_3
2015-01-06  87          40          95
2015-01-07  46          72          74
2015-01-08  30          71          94

这是我的架构:

Table [winners_night]
    Fields: 9
        [row_id]: INTEGER NOT NULL
        [year]: CHAR
        [month]: CHAR
        [date_of_the_month]: CHAR
        [day_of_the_week]: CHAR
        [draw_date]: DATE
        [winner_1]: INTEGER
        [winner_2]: INTEGER
        [winner_3]: INTEGER
    Foreign Keys: 0
    Indexes: 2
        [sqlite_autoindex_winners_night_1] PRIMARY
            [draw_date] 
        [row_id]
            [row_id] 
    Triggers: 0
    Unique constraints: 0
    Check constraints: 0
------------------------------------------------------------

我的 id 有空白,这就是为什么我不使用它们对结果进行排序的原因。

相反,我使用 draw_date 对结果进行排序。

希望你们能帮助我

提前致谢!!

标签: sqlsqlite

解决方案


您可以使用子查询:

SELECT * FROM winners_night 
WHERE draw_date > 
(
SELECT draw_date FROM winners_night WHERE winner_1 = 86 Limit 1
)
ORDER BY draw_date Limit 3

推荐阅读