Форум: "Базы";
Текущий архив: 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