筛选出表1重复的值并且是使用的状态,然后去表2匹配(若表2也
sql吧
全部回复
仅看楼主
level 1
-Joker🍒 楼主
筛选出表1重复的值并且是使用的状态,然后去表2匹配(若表2也有重复的值,则根据最新时间来获取到名称id,然后去表1匹配到对应的姓名id,除这条信息的其他重复姓名的状态改为禁用。若表2没有重复的值,就直接匹配表1的姓名id然后把除这条信息的其他数据改为禁用,有没有各位大佬帮助一下
2022年09月01日 02点09分 1
level 8
表设计有问题:
表一已经有唯一ID。按道理应该不存在重复值的。除非不是全表重复只针对name这个字段重复。
表二跟表一的关联必须通关函数进行这个不利于查询结构本来有问题,还好给出表三但是从备注看不出关联性。。。。。。。。
需求解析起来就两点:
1.“若表2没有重复的值,就直接匹配表1的姓名id然后把除这条信息的其他数据改为禁用,”译作:找不到关联的禁用
2.“若表2也有重复的值,则根据最新时间来获取到名称id,然后去表1匹配到对应的姓名id,除这条信息的其他重复姓名的状态改为禁用”译作:有关联的保留最新的其他禁用
2022年09月01日 06点09分 2
level 8
没关联的SQL
select * from 表1 a
left join 表3 b on b.名称ID=a.名称id
left join 表2 c on c.name=b.表ID
where c.allname is null
有关联的保留最新的SQL
select * from 表1 a
inner join 表3 b on b.名称ID=a.名称id
inner join 表2 c on c.name=b.表ID
where b.time <> (select max(bb.time) from 表1 aa
inner join 表3 bb on bb.名称ID=aa.名称id
inner join 表2 cc on cc.name=bb.表ID where aa.name=a.name)
具体不知道你用什么数据库,语法不同update 方式不同,显示的内容就是要失效的数据
2022年09月01日 07点09分 3
level 1
[酸爽]蒙途 学-空洞-骑士-开发-到-siki学院 -------良钥烙仪僖拦恳簇妨簇接檀仓悼雀送
2022年09月29日 16点09分 5
1