不改变两个表,新建表c,专门用来做 a、b表的关联。
事务:
a、b都添加成功,在c表添加关联记录。
放到a表里面,程序改动会是 巨大的吧?
可是在a,b表都有批量添加的name相同的资产的情况下,通过name关联会得到交叉关联的多对过的数据,不是一对一的数据
@白鲟: name不是唯一的?
@快乐的凡人721: 对,麻烦就出在这了😂
@白鲟:
1、存code列表;
2、无解,say NO。
@快乐的凡人721: 存code列表能具体说一下吗?
@白鲟: a表的old_code字段 设计为存 字符串——长度看你们使用情况,b表的code用都好分隔开,存进a表
我想问你是怎么知道一一对应的?你怎么知道a表哪条记录对应b表哪条记录?
我想你如果光看name的话肯定区分不出来。你就用你能区分的字段来进行关联,不只是name。
并不是一一对应,每条数据都可能对应多条;但我想做到让它们每一条只对应一条能对上的
@白鲟: 你没表贴出来,我也不好理解。我全当你name相同的记录code也相同了。
update test_groupby_b a
LEFT JOIN
(select max(t.id),t.name,t.code from test_groupby t GROUP BY t.name) b on a.name = b.name
set a.old_code = b.code;
其中test_groupby_b是你的a表,有id,name,old_code。test_groupby是你的b表,有id,name,code。
你想把b表的用name关联到code更新到a表的old_code。就用上面的语句。
@super超人:
你这是把重复的都去掉了呀😂;打个比方,有10个男的和10个女的,我需要他们组队成10组男女,谁和谁组都行,但每个人只能和一个异性组队