Я создаю SQLite VIEW, который является результатом нескольких объединенных таблиц.Все мои таблицы имеют столбец _id, как того требует Android.У результата есть несколько столбцов с одинаковым именем _id, но SQLite добавляет «: 1» и «: 2» к повторяющимся именам, чтобы они больше не были дубликатами.
Если вы запустите приведенный ниже SQL, вы увидитеПолученное представление имеет интересные имена столбцов:
CREATE TABLE things ("_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" TEXT NOT NULL);
CREATE TABLE thing_colors ("_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "thing_id" INTEGER NOT NULL , "color" TEXT NOT NULL);
INSERT INTO things VALUES ("1","car");
INSERT INTO things VALUES ("2","horse");
INSERT INTO things VALUES ("3","lamp");
INSERT INTO thing_colors VALUES ("1","1","blue");
INSERT INTO thing_colors VALUES ("2","1","red");
INSERT INTO thing_colors VALUES ("3","2","brown");
INSERT INTO thing_colors VALUES ("4","3","silver");
INSERT INTO thing_colors VALUES ("5","3","gold");
CREATE VIEW things_and_colors AS SELECT * FROM things JOIN thing_colors ON things._id=thing_colors.thing_id;
SELECT * FROM things_and_colors;
Я считаю эти переименованные имена столбцов полезными, но разве это нормальное поведение SQL и можно ли на него полагаться?
Но, конечно, это всего лишь пример, в реальной жизни я объединяю три таблицы, и в результате получается около 70 столбцов, из которых 3 названы _id.