手始めに、ここにあなたが持っているものがあります
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
この2つは、(この場合)句を使用して結合を指定することと同じです。それは動作しますが、それは貧弱な形式です(それはそれほど明確ではありませんINNER JOIN
):
SELECT Users.Name, NickNames.NickName
FROM Users, NickNames
WHERE User.UserId = NickNames.UserId
AND NickNames.NickName = 'Copper';