尽管查询在其他地方工作,但 Sqlite PreparedStatement 未返回

我遇到一个问题,我收到一个空ResultSet的查询,我知道该查询适用于给定的数据库。


该数据库(截断和匿名)如下:


-- Table: places

CREATE TABLE places (id INTEGER PRIMARY KEY AUTOINCREMENT, venue_id INTEGER, timestamp INTEGER, venue_name TEXT);

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (1, 1, 1533231909000, 'Place 1');

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (2, 2, 1533231909000, 'Place 2');

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (3, 1, 1533231911000, 'Place 1');

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (4, 1, 1533232901300, 'Place 1');

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (5, 2, 1533233301300, 'Place 2');

INSERT INTO places (id, venue_id, timestamp, venue_name) VALUES (6, 3, 1533245000000, 'Place 3');

-- Table: opening_times

CREATE TABLE opening_times (id INTEGER PRIMARY KEY AUTOINCREMENT, venue_id INTEGER, timestamp INTEGER);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (1, 1, 1546300836000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (2, 2, 1546300840000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (3, 1, 1546300840000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (4, 1, 1533231911000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (5, 1, 1533232011000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (6, 3, 1533232011000);

INSERT INTO opening_times (id, venue_id, timestamp) VALUES (7, 2, 1533232011000);

我的代码正在生成以下 SQL 命令(尽管打印效果不佳)


SELECT DISTINCT p.venue_name,

                q.changes

FROM   (SELECT COUNT(*) - 1 AS changes,

               venue_id,

               timestamp

我已经准备了许多 SO 帖子,据我所知,我遵循了正确的步骤以正确获取数据。其他不太复杂的查询工作得很好,似乎这个特定的查询目前无法返回数据。


我还使用 Java 8 和org.xerial:sqlite-jdbc3.25.2 版连接到数据库,如果这有什么不同的话。


江户川乱折腾
浏览 109回答 1
1回答

慕尼黑5688855

此问题已通过恢复到org.xerial:sqlite-jdbc:3.21.0.1我在我的 OSX 10.14 机器上遇到了这个问题,但更高版本的 3.25.2 似乎适用于 Windows 和 Linux 上的其他用户。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java