Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / создать третью таблицу по мотивам двух других / 5 сообщений из 5, страница 1 из 1
25.09.2013, 11:42
    #38407001
shaienn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создать третью таблицу по мотивам двух других
Есть две одинаковые по структуре, но разные по содержанию таблицы в разных базах данных

Допустим, первый файл 1st.db
create table t1 (
pk integer primary key,
name text not null,
somedata integer null
);

insert into t1 values ( 1, "john1", 5 );
insert into t1 values ( 2, "mary1", 3 );
insert into t1 values ( 3, "john1", 4 );

Второй файл 2nd.db
create table t1 (
pk integer primary key,
name text not null,
somedata integer null
);

insert into t1 values ( 1, "john2", 1 );
insert into t1 values ( 2, "mary2", 2 );
insert into t1 values ( 3, "john2", 7 );

Хочу виртуальную таблицу вида:
create table t1 (
vid integer primary key,
pk integer not null,
db integer not null,
name text not null,
somedata integer null
);

в которую сложатся данные из этих двух таблиц:

vid pk db name somedata
...
Рейтинг: 0 / 0
25.09.2013, 11:45
    #38407005
shaienn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создать третью таблицу по мотивам двух других
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
vid pk db    name somedata
1    1  1   john1     5
2    2  1   mary1     3
3    3  1   john1     4
4    1  2   john2     1
5    2  2   mary2     2
6    3  2   john2     7
...
Рейтинг: 0 / 0
25.09.2013, 11:48
    #38407008
shaienn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создать третью таблицу по мотивам двух других
То есть, поле vid - уникальный индекс, поле pk - индексы из обрабатываемых таблиц (уже не уникальные), db - из какого файла строка, name и somedata - соответствующие столбцы из обрабатываемых таблиц.

Подскажите направление мыслей, а то туплю.
...
Рейтинг: 0 / 0
25.09.2013, 11:52
    #38407015
shaienn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создать третью таблицу по мотивам двух других
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SQLiteConnection connector;
        SQLiteConnection cWeb;
        SQLiteConnection cUser;
string webdb = "webdb.db";
        string virtualdb = "virtual.db";
       string userdb = "user.db";

connector = new SQLiteConnection(string.Format("Data Source={0}", virtualdb));
cWeb = new SQLiteConnection(string.Format("Data Source={0}", webdb));
cUser = new SQLiteConnection(string.Format("Data Source={0}", userdb));
SQLiteCommand cmd = null;
            string createTableQuery = @"CREATE TABLE IF NOT EXISTS [cAuthors] (
                          [memid] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                          [id] INTEGER NULL,
                          [name] TEXT NULL,
                          [db] TEXT NULL
                          )";

cmd = new SQLiteCommand(createTableQuery, connector);
cmd.ExecuteNonQuery();
cmd = new SQLiteCommand("ATTACH '" + userdb + "' AS userdb", connector);
cmd.ExecuteNonQuery();

cmd = new SQLiteCommand("INSERT INTO main.cAuthors (id, name, db) VALUES (SELECT id FROM userdb.Authors, SELECT name FROM userdb.Authors, '2')", connector);
cmd.ExecuteNonQuery();
...
Рейтинг: 0 / 0
25.09.2013, 13:35
    #38407156
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создать третью таблицу по мотивам двух других
shaienn,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create temporary table tmp (
vid integer primary key, 
pk integer not null,
db integer not null,
name text not null,
somedata integer null
);

ATTACH 2nd.db as 2nd;
 
insert into tmp (pk, db, name, somedata)
select pk, 1, name, somedata from main.t1
union all
select pk, 2, name, somedata from 2nd.t1;

  
select * from temp
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / создать третью таблицу по мотивам двух других / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]