有誰知道REFERENCES關鍵字在sqlite中做了些什麼?例如,如果我有以下聲明:fr int REFERENCES contacts(id)
這是什麼意思,如何使用它,如果我想SELECT count(fr) from TABLE WHERE
我知道一個聯繫人的ID?Sqlite REFERENCES關鍵字
換句話說,我想創建一個SELECT
語句來計算聯繫人ID等於某個數字的fr
的數量。
有誰知道REFERENCES關鍵字在sqlite中做了些什麼?例如,如果我有以下聲明:fr int REFERENCES contacts(id)
這是什麼意思,如何使用它,如果我想SELECT count(fr) from TABLE WHERE
我知道一個聯繫人的ID?Sqlite REFERENCES關鍵字
換句話說,我想創建一個SELECT
語句來計算聯繫人ID等於某個數字的fr
的數量。
回答這個問題的另一部分,你會怎麼做:
select count(*) from tablename where fr = contactid;
自「參考」表示FR字段包含從接觸ID字段值。
一些額外的細節:你有兩個表:聯繫人和「表名」。在聯繫人中,您有各種人的詳細信息,我猜,並且每個人都有一個ID。在「表格名稱」中,您有更多信息,表格中的每行都是「約」或「屬於」聯繫人中的某個人。因此「表名」中的每行都有一個用於標識該人的「fr」條目。它通過包含該人員的id值的副本(大概每個人都有不同的id)。這是「參考」告訴你的 - 「fr」包含「id」的副本。
所以你想要做的是找到每個人的「表名」的東西的計數。通常這意味着加入兩個表格,但在這種情況下,您不必因爲在「表格名稱」中已經存在該人員的本地ID副本。所以你所要做的就是在「tablename」中查找具有該人ID的行,然後對它們進行計數。這意味着你只需要找到那些「fr」等於id的行(因爲你知道這是來自聯繫人的id的副本)。
它創建一個指向id
字段的外鍵contacts
表。儘管如此,我不記得是否可以在場後使用它。你可以做例如
CREATE TABLE foo (
id int,
fr int,
FOREIGN KEY(fr) REFERENCES bar(id)
);
你可以引導我瞭解這裏的邏輯以及它如何與.schema連接? – locoboy
我增加了一些 - 希望有所幫助。 –
謝謝。如果第一個表中沒有fr引用,那麼join將如何產生相同的SQL結果? – locoboy