如果我有两个这样的表:
CREATE TABLE users
(
id INTEGER PRIMARY KEY,
username TEXT UNIQUE NOT NULL
);
CREATE TABLE games
(
id INTEGER PRIMARY KEY,
player1 INTEGER REFERENCES users,
player2 INTEGER REFERENCES users,
comment TEXT
);
在给定两个用户名的情况下,如何在games
表中插入新行?
首先需要通过用户名在users
表中查找用户的主键,然后将其插入games
表中。最好的方法是什么?
所以,而不是
INSERT INTO games (player1, player2)
VALUES (1, 2);
如何将其与从用户名中查找ID值结合起来?
答案 0 :(得分:1)
您可以使用子查询根据两个用户名的id
来查找它们:
INSERT INTO games (player1, player2, comment)
SELECT
(SELECT username FROM users WHERE id = 1),
(SELECT username FROM users WHERE id = 2),
'good luck';