【发布时间】:2020-03-26 03:28:45
【问题描述】:
表 TEST 是错误的,因为它有重复的值。我需要使用唯一 id 更新关系表以进行测试,然后删除重复的值。
测试
+----------+---------+
| id_test | name |
+----------+---------+
| 1 | gir |
| 2 | gir |
| 3 | gir |
| 4 | ego |
| 5 | ego |
| 6 | iph |
| 7 | iph |
+----------+---------+
PRODUCT_HAS_TEST
+----------+---------+
| id_prod | id_test |
+----------+---------+
| 3 | 1 |
| 1 | 2 |
| 2 | 2 |
| 4 | 3 |
| 5 | 4 |
| 6 | 5 |
| 7 | 6 |
| 8 | 7 |
+----------+---------+
我有这个查询来查找重复值:
SELECT GROUP_CONCAT(id_test) as ids, name, COUNT(*) c FROM test GROUP BY name HAVING c > 1;
结果:
+------+------+------+
| ids | name | c |
+------+------+------+
| 4,5 | ego | 2 |
|1,2,3 | gir | 3 |
| 6,7 | iph | 2 |
+------+------+------+
另一个从 TEST 中删除重复值:
delete
from test using test,
test e1
where test.id > e1.id
and test.name = e1.name
但我需要先更新表 PRODUCT_HAS_TEST,我不知道该怎么做。
预期结果:
PRODUCT_HAS_TEST
+----------+---------+
| id_prod | id_test |
+----------+---------+
| 3 | 1 |
| 1 | 1 |
| 2 | 1 |
| 4 | 1 |
| 5 | 4 |
| 6 | 4 |
| 7 | 6 |
| 8 | 6 |
+----------+---------+
测试
+----------+---------+
| id_test | name |
+----------+---------+
| 1 | gir |
| 4 | ego |
| 6 | iph |
+----------+---------+
【问题讨论】:
-
您能告诉我们您希望这两个表在更新后的样子吗?
-
当然!我已经更新了我的问题。