Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет
Имеется таблица :
+------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+----------------+ | base_id | int(20) | | PRI | NULL | auto_increment | | Familia | varchar(20) | YES | MUL | NULL | | | Name | varchar(20) | YES | MUL | NULL | | | Otchestvo | varchar(20) | YES | MUL | NULL | | | Date_Rojdenia | date | YES | MUL | NULL | | | Nomer_i_seria_pasporta | varchar(20) | YES | MUL | NULL | | | INN_Organizacii | varchar(10) | YES | | NULL | | | Telefon_Domashnyi | varchar(12) | YES | | NULL | | | Telefon_Rabochyi | varchar(12) | YES | | NULL | | | Telefon_Mobilnyi | varchar(12) | YES | | NULL | | | Mesto_Raboti | longtext | YES | | NULL | | | Vid_kredita | varchar(20) | YES | | NULL | | | Bank_poslavchyi_zapros | varchar(30) | YES | | NULL | | | Adres_Ispolnitelia | varchar(40) | YES | MUL | NULL | | | Comentaryi | longtext | YES | | NULL | | | Date_Obrashenia | datetime | YES | | NULL | | | user_id | varchar(10) | YES | MUL | NULL | | | City | varchar(20) | YES | | NULL | | | Primechanie | longtext | YES | | NULL | | | roz | varchar(255) | YES | | NULL | | | Search_status | int(2) | YES | | NULL | | | Code | int(2) | YES | | NULL | | | systime | timestamp | YES | | NULL | | +------------------------+--------------+------+-----+---------+----------------+
В этой таблици ключевое поле ID при этом сочетание фамилия, имя, отчество, дата рождения или номер паспорта дают уникальную запись. В базе они повторялись, а информация по ним (Дата обращения, телефоны итд) разные поэтому я решил разнести базу на 2 таблици одна klient_1 где будут уникальные клиенты с ключевым полем ID, а вторая inf_primary информация по ним где ID не является ключем.
Сгрупировал повторяющиеся записи в уникальные следующим запросом:
insert into klient_1 (select perepiska.base_id, perepiska.Familia, perepiska.Name, perepiska.Otchestvo, perepiska.Date_Rojdenia, perepiska.Nomer_i_seria_pasporta
from perepiska group by perepiska.Familia, perepiska.Name, perepiska.Otchestvo, perepiska.Date_Rojdenia, perepiska.Nomer_i_seria_pasporta)
!!!! Теперь проблема как заполнить вторую таблицу inf_primary чтобы она соответсвовала по ID с klient_1
я заполнял таблицу так:
select klient_1.id, perepiska.Date_Obrashenia, perepiska.Bank_poslavchyi_zapros, perepiska.Adres_Ispolnitelia, perepiska.Primechanie, perepiska.Roz,
perepiska.Code, perepiska.user_id
FROM
klient_1
inner Join perepiska ON (klient_1.familia = perepiska.Familia
AND klient_1.name = perepiska.Name
AND klient_1.otchestvo = perepiska.Otchestvo
AND klient_1.date_rojdenia = perepiska.Date_Rojdenia)
Получалась лажа.
Есть ли более простой метод как это все провернуть !?
Отредактированно psyc0ma (26.08.2008 10:42:14)
Неактивен
После того, как создали отдельную таблицу (clients), можно в первую таблицу (orders) добавить поле client_id и сделать UPDATE
UPDATE orders o, clients c SET o.client_id = c.id WHERE o.Familia = c.Familia AND o.name = c.Name AND o.Otchestvo = c.Otchestvo AND ...
И только после этого удалить избыточные поля (Familia, Name, Otchestvo, .. ) из таблицы orders
Неактивен