Создать новую таблицу из двух таблиц с несколькими столбцами в первой таблице, замененными столбцами во второй таблице - PullRequest
0 голосов
/ 10 апреля 2011

Мне нужно вставить данные в новую таблицу, поля которой построены из двух существующих таблиц с именами Table1 и Table2, как показано ниже. Path1 и path2 взяты из Таблицы2, но ссылки хранятся в Таблице1. Таблица 1 не должна изменяться, поскольку поле пути таблицы 2 будет изменено.

New Table
id path1 path2
1  /a/b  /a/c
2  /a/d  /a/e


Table1
id path1_id path2_id
1  1        2
2  3        4


Table2
id path
1  /a/b
2  /a/c
3  /a/d
4  /a/e

1 Ответ

0 голосов
/ 10 апреля 2011

Вы не дали нам много работы, поэтому вот попытка просто запустить прокат:

insert 
  into new_table(id, path1, path2)
select t1.id
      ,p1.path
      ,p2.path
  from table1 t1
  join table2 p1 on(p1.id = t1.path1_id)
  join table2 p2 on(p2.id = t1.path2_id)

... на основании следующих предположений о ваших данных:

  • table1.id - это уникальный ключ
  • table2.id - уникальный ключ
  • new_table.id «наследует» ключ от таблицы1
  • Существует ограничение (доверенный или принудительный) внешнего ключа от table1.path1_id => table2.id
  • Существует ограничение (доверенный или принудительный) внешнего ключа от table1.path2_id => table2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...