Очистка таблиц MySQL после дублирующих записей, где создается и на это ссылается вторая таблицаMySql

Форум по Mysql
Ответить
Anonymous
 Очистка таблиц MySQL после дублирующих записей, где создается и на это ссылается вторая таблица

Сообщение Anonymous »

После длительного периода этого неправильного мы обнаружили, что в нашем наборе данных возникает ошибка.

В таблице производителей производители часто добавляются несколько раз, и продукт в таблице продуктов ссылается на дубликат идентификатора для производителя. class="s-table-container">


manufacturers_id
manufacturers_name




1
Manufacturer #1


2
Manufacturer #2


3
Manufacturer #3


4 < /td>
производитель #2 < /td>
< /tr>

5 < /td>

< /tr>
< /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> < /td> />Manufacturer #2


7
Manufacturer #1


8
Manufacturer #3


9
Manufacturer #2






products_id < /th>
производители_ид < /th>
< /tr>
< /theader>


1 < /td>
1 < /td>
< /tr>

1 < /td>
< /tr> /> 2 < /td>
2 < /td>
< /tr>

3 < /td>
3 < /td>
< /tr>

4 < /td>
< /tr>

4
< /tr /> < /tr>

5 < /td>
5 < /td>
< /tr>

6 < /td>
6 < /td>
< /tr>

. />7


8
8


9
9


< /table> < /div>
Нам нужно достичь двух вещей: < /p>

Удалить дубликаты из производителей таблиц и сохранить первую запись < /li>
Обновление таблицы продуктов, где идентификаторы дублирования идентификаторы Br /ol -ol -ol -ol для того, что производитель < />

Каждый шаг можно сделать вручную, но количество различных производителей и продуктов делает это не подходящим для ручной задачи.
, и мне не хватает необходимых знаний о Querry, поэтому помощь будет приветствовать. />

производители_идки_ид < /th>
производители_name < /th>
< /tr>
< /thead>


1 < /td>


1 < /td>
#1 < /td> /> < /tr>

2 < /td>
производитель #2 < /td>
< /tr>

3 < /td>
производитель #3 < /td>
< /tr>

#3 < /td>
< /tr>

#3 < /td>
< /tr>
#3 < /td>
< /td>
. />



products_id
manufacturers_id




1 < /td>
1 < /td>
< /tr>

2 < /td>
2 < /td>
< /tr>

3 < /td>
< /tr>

3 < /td>
< /tr /> < /tr>

4 < /td>
2 < /td>
< /tr>

5 < /td>
3 < /td>
< /tr>

. /> 2 < /td>
< /tr>

7 < /td>
1 < /td>
< /tr>

8 < /td>
3
< /br /tr>

/> 9 < /td>
2 < /td>
< /tr>
< /tbody>
< /table> < /div>
CREATE TABLE manufacturers (
`manufacturers_id` int(11) NOT NULL,
`manufacturers_name` varchar(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;

ALTER TABLE manufacturers
ADD PRIMARY KEY (`manufacturers_id`),
ADD KEY `IDX_MANUFACTURERS_NAME` (`manufacturers_name`);

INSERT INTO manufacturers (`manufacturers_id`, `manufacturers_name`) VALUES
(1, 'Manufacturer #1'),
(2, 'Manufacturer #2'),
(3, 'Manufacturer #1'),
(4, 'Manufacturer #2'),
(5, 'Manufacturer #3'),
(6, 'Manufacturer #2'),
(7, 'Manufacturer #1'),
(8, 'Manufacturer #3'),
(9, 'Manufacturer #2');

CREATE TABLE `products` (
`products_id` int(11) NOT NULL,
`manufacturers_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;

ALTER TABLE `products`
ADD PRIMARY KEY (`products_id`);

INSERT INTO `products` (`products_id`, `manufacturers_id`) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5),
(6, 6),
(7, 7),
(8, 8),
(9, 9);


Подробнее здесь: https://stackoverflow.com/questions/797 ... erenced-by
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»