對於初學者來說,這裏是你有
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';
作爲添加上,這個問題本身就不是SQLite的之一,但數據庫心計。 SQLite和支持多個表的任何其他體面的數據庫一樣有效。這一切都從一個適當的模式開始。 – MPelletier 2009-11-17 21:31:00