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

Вниз

Слияние таблиц это как? Помогите!   Найти похожие ветки 

 
Xmen   (2001-12-19 07:59) [0]

Мне нужно слият две таблицы это как можно сделать, И такая проблема у меня есть две таблицы одинаковы по смыслю, но немношко ест разница у одного чут болше полей (дополнение) и имя таблиц различаются. и как вобще можно работат с таблицами которых нужно слиять, дополнять, обновлять. какой компонент отвечает за это и как можно это сделать. Помогите пожалуста, очень нужна, свои ответы лучше посылайте по почте(я невсегда подключен к инету.) rustam.ergashev@gallabank.uz


 
TonnyS   (2001-12-19 11:43) [1]

Реализация зависит от задачи.
1. Если просто в первую добавить записи из второй, которой в первой нет то запрос типа (выборка, ещё не добавление):

SELECT t2.* FROM <table2> t2
WHERE (SELECT count(t1.*) FROM <table1> t1
WHERE t1.f1=t2.f1 AND t1.f2=t2.f2 AND...{все поля кроме ключевого})=0

вроде так. Потом в цикле пробежаться по полученной выборке и повносить в table1 записи из неё. Можно сразу запросом внести, но я предпочитаю в цикле, чтоб лог вести.
2. Таблицы формируются в разных местах и их периодически согласовывать надо. Тогда в таблице добавить 2 целочисленных поля, например Serv и CompStat. В первое записываеш 0 - для главного рабочего места, 1,2,... - для подчиненного. В CompStat - 0 - если главное рабочее место ИЛИ Добавление на подчинённом, 1 - если Изменение записи на подчинённом.
тогда простым запросом
SELECT * FROM table2 WHERE Serv<>0
получаеш все записи, сделанные на подчинённом, а по полю CompStat смотриш, было ли изменение записи.
После внесения всех записей в table1 просто копируеш её в table2.
Если что - пиши (можно на почту)


 
Xmen   (2001-12-19 14:21) [2]

Спосибо за ответ у меня таблицы отличаются тем, что некторые поля имеют другое имя, и это не нужно изменить, а копироват туда данные. Я попробовал Help->Batchmove программу но это не помогло.Индексны поля не копируются.


 
TonnyS   (2001-12-19 14:51) [3]

тогда запрос вида 1, а в условии не обязательно идентичные поля указывать, можно типа t1.name=t2.name_s и т.д.



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

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

Наверх




Память: 0.45 MB
Время: 0.004 c
3-75467
VovanR
2001-12-18 17:17
2002.01.24
Производительность функции Table.Locate ?


14-75683
IvanIvanov
2001-11-27 22:44
2002.01.24
Может здесь кто знает?????


6-75641
Dust
2001-10-28 01:42
2002.01.24
Ограничение на размер пакета


1-75626
Eraser
2002-01-03 15:40
2002.01.24
Снова я и снова торможу


3-75535
sky3d
2001-12-21 18:24
2002.01.24
SQL запрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский