Sqlite ССЫЛКИ ключевое слово - PullRequest
0 голосов
/ 10 августа 2011

Кто-нибудь знает, что ключевое слово REFERENCES делает в sqlite? Например, если у меня было следующее утверждение: fr int REFERENCES contacts(id) что это значит и как мне его использовать, если я хотел SELECT count(fr) from TABLE WHERE я знаю идентификатор контакта?

Другими словами, я хочу создать оператор SELECT, который считает число fr, где идентификатор контакта равен некоторому числу.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

, чтобы ответить на другую часть вопроса, вы должны сделать:

select count(*) from tablename where fr = contactid;

, поскольку «ссылки» указывает, что поле fr содержит значения из поля id в контактах.

некоторые дополнительные детали: у вас есть две таблицы: контакты и «имя таблицы».в контактах у вас есть данные о разных людях, я думаю, и у каждого есть идентификатор.в «tablename» у вас есть дополнительная информация, где каждая строка в таблице «о» или «принадлежит» кому-то в контактах.поэтому каждая строка в «имени таблицы» имеет запись в «fr», которая идентифицирует человека.он делает это, содержащий копию значения идентификатора для этого человека (предположительно, у каждого человека свой идентификатор).это то, что вам говорят «ссылки» - что «fr» содержит копию «id».

, поэтому вы хотите найти количество вещей в «tablename» для каждого человека.часто это означает объединение двух таблиц, но в этом случае вам не нужно, потому что в "tablename" уже есть локальная копия идентификатора человека.так что все, что вам нужно сделать, это найти те строки в «имя таблицы», которые имеют идентификатор человека, и сосчитать их.это означает, что вам просто нужно найти те строки, где "fr" равен id (потому что вы знаете, что это копия id из контактов).

1 голос
/ 10 августа 2011

Создает внешний ключ, который указывает на поле id в таблице contacts.Хотя я не помню, можно ли его использовать после такого поля.Вы можете сделать, например,

CREATE TABLE foo (
    id int,
    fr int,
    FOREIGN KEY(fr) REFERENCES bar(id)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...