对于初学者来说,这就是你所拥有的
SELECT Name, Nickname FROM MyTable WHERE Nickname = 'Copper';
但我强烈建议使用一个名称表和一个昵称表,以便昵称可以引用名称。
CREATE TABLE Users (
UserId INTEGER PRIMARY KEY,
Name TEXT
);
CREATE TABLE Nicknames (
NickNameId INTEGER PRIMARY KEY,
UserId INTEGER REFERENCES Users(UserId),
NickName Text
);
你会发现这个方案会给你更多的控制来编辑条目,删除它们等。
使用以下任一方式查询它INNER JOIN
:
SELECT Users.Name, NickNames.NickName
FROM Users INNER JOIN NickNames ON User.UserId=NickNames.UserId
WHERE NickNames.NickName = 'Copper';
或嵌套查询:
SELECT Users.Name
FROM Users
WHERE User.UserId IN (
SELECT NickNames.UserId
FROM NickNames
WHERE NickNames.NickName = 'Copper');
两者等效于(在这种情况下)使用WHERE
子句指定连接。它有效,但它的形式很差(它不像 那样清楚INNER JOIN
):
SELECT Users.Name, NickNames.NickName
FROM Users, NickNames
WHERE User.UserId = NickNames.UserId
AND NickNames.NickName = 'Copper';