Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Вниз

клонирование записей из 3х связанных таблиц   Найти похожие ветки 

 
Prohodil Mimo ©   (2005-07-21 19:02) [0]

Есть 3 таблицы (Главная, под ней другая, а под второй ещё одна)

необходимо сделать копию записи первой таблицы, со всеми хвостами из второй, а для второй все хвосты из третьей.
Возможно ли это сделать SQL запросом или надо писать ХР?

FB 1.5.2


 
P.N.P. ©   (2005-07-21 19:44) [1]

Что значит "копию записи"?
Выбрать-то не проблема. INNER JOIN обычный.
А вот insert/update одним запросом - никак.


 
Prohodil Mimo ©   (2005-07-21 19:59) [2]

P.N.P. ©   (21.07.05 19:44) [1]
Что значит "копию записи"?


ну представим таблицы в виде каталогов с файлами.
Есть каталог, в нем другой, а в том ещё один.
Вот и надо сделать копию каталога с подкаталогами, только в БД с таблицами.


 
Fay ©   (2005-07-21 20:20) [3]

2 Prohodil Mimo ©   (21.07.05 19:59) [2]
Два запроса вида insert .. select и один цикл такиз запросов.
Тебе их написать, что-ли?


 
Fay ©   (2005-07-21 20:56) [4]

2 Fay ©   (21.07.05 20:20) [3]
Цикл, кстати, не нужен 8)


 
evvcom ©   (2005-07-22 09:27) [5]


> ну представим таблицы в виде каталогов с файлами.
> Вот и надо сделать копию каталога с подкаталогами, только
> в БД с таблицами

Так представим или это и есть реальная задача? Куда сделать копию? Откуда? Что вообще имеется? Или и таблицы надо создавать? В чем проблема? Ничего не понятно.


 
Prohodil Mimo ©   (2005-07-22 15:53) [6]

Fay ©   (21.07.05 20:20) [3]
Два запроса вида insert .. select и один цикл такиз запросов.
Тебе их написать, что-ли?


Хотел обойтись без цикла, одним запросом.

Обошёлся. Правда для этого ввёл ещё одно поле в котором указано с кого делалась копия, и триггер.


 
Prohodil Mimo ©   (2005-07-22 16:11) [7]

Для тех кто не понял что я хотел :

Таблица1

ID1 : NAME
1   : aaa
2   : bbb

Таблица2

ID2 : ID1 : NAME
1   :  1  :  aa
2   :  2  :  bb
3   :  2  :  cc
4   :  2  :  dd

Таблица3

ID3 : ID2 : NAME
1   :  2  :  a
2   :  2  :  b
3   :  3  :  c
4   :  2  :  d

После копирования записи (2) из таблицы 1 должно получиться так:

Таблица1

ID1 : NAME
1   : aaa
2   : bbb
3   : копия bbb

Таблица2

ID2 : ID1 : NAME
1   :  1  :  aa
2   :  2  :  bb
3   :  2  :  cc
4   :  2  :  dd
5   :  3  :  bb
6   :  3  :  cc
7   :  3  :  dd

Таблица3

ID3 : ID2 : NAME
1   :  2  :  a
2   :  2  :  b
3   :  3  :  c
4   :  2  :  d
5   :  5  :  a
6   :  5  :  b
7   :  6  :  c
8   :  5  :  d

ЗЫ. можете предложить свои варианты.


 
evvcom ©   (2005-07-22 17:20) [8]

Не знаю как FB, думаю, вряд ли птица сможет вставить одним запросом данные в 3 таблицы. Такое по плечу, наверное, только Ораклу. Кроме того, я так и не понял по какому алгоритму должны вставляться записи в т2 и т3.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.057 c
1-1123955095
Ксардас
2005-08-13 21:44
2005.09.04
Небольшая проблема с потоком...


14-1123820410
Black_phoenix
2005-08-12 08:20
2005.09.04
Переход с Delphi на VIsual C++ Net 2002


6-1116353312
lifo
2005-05-17 22:08
2005.09.04
Консольная программа по передаче файлов


3-1122383626
AsMx
2005-07-26 17:13
2005.09.04
ИнтерБейзовская база без ИнтерБейза


14-1123471171
ArMellon
2005-08-08 07:19
2005.09.04
как перепрошить видюху





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский