После длительного периода этого неправильного мы обнаружили, что в нашем наборе данных возникает ошибка.
В таблице производителей производители часто добавляются несколько раз, и продукт в таблице продуктов ссылается на дубликат идентификатора для производителя. 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