这是我的表的创建...
CREATE TABLE questions(
id INTEGER PRIMARY KEY AUTOINCREMENT,
question VARCHAR(256) UNIQUE NOT NULL,
rangeMin INTEGER,
rangeMax INTEGER,
level INTEGER NOT NULL,
totalRatings INTEGER DEFAULT 0,
totalStars INTEGER DEFAULT 0
);
CREATE TABLE games(
id INTEGER PRIMARY KEY AUTOINCREMENT,
level INTEGER NOT NULL,
inclusive BOOL NOT NULL DEFAULT 0,
active BOOL NOT NULL DEFAULT 0,
questionCount INTEGER NOT NULL,
completedCount INTEGER DEFAULT 0,
startTime DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE gameQuestions(
gameId INTEGER,
questionId INTEGER,
asked BOOL DEFAULT 0,
FOREIGN KEY(gameId) REFERENCES games(id),
FOREIGN KEY(questionId) REFERENCES questions(id)
);
我将解释我正在执行的完整步骤,然后我会征求意见。
我需要...
- 使用 games.id 值,查找该游戏的 games.questionCount 和 games.level。
- 现在,由于我有 games.questionCount 和 games.level,我需要使用 questions.level = games.level 查看问题表中的所有行,并随机选择其中的 games.questionCount。
- 现在有了从第 2 步得到的行(也就是问题),我需要使用 games.id 值和 questions.id 值将它们放入 gameQuestions 表中。
实现这一目标的最佳方法是什么?我可以用几个不同的 sql 查询来做到这一点,但我觉得真正熟练使用 sql 的人可以让它更有效率。我正在使用 sqlite3。