SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.08.2008 10:39:22

psyc0ma
Участник
Зарегистрирован: 25.06.2008
Сообщений: 3

Разнисение таблици MySQL срочно нужна помощь.

Всем привет
Имеется таблица :

Код:

+------------------------+--------------+------+-----+---------+----------------+
| 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)

Неактивен

 

#2 31.08.2008 22:25:25

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Разнисение таблици MySQL срочно нужна помощь.

После того, как создали отдельную таблицу (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

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson