Для начала вот что у вас есть
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';