Главная страница
    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.012 c
4-1121293552
zero-g
2005-07-14 02:25
2005.09.04
Создание ярлыка в меню пуск-автозагрузка


9-1116018261
XCoder
2005-05-14 01:04
2005.09.04
Оптимизация рендеринга OpenGL


4-1121344478
viper
2005-07-14 16:34
2005.09.04
Время загрузки


14-1123690612
S.A.P
2005-08-10 20:16
2005.09.04
Что происходит с жестким диском ?


1-1124041149
leonidus
2005-08-14 21:39
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский