首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何删除多余无关联的数据

2013-11-20 
怎么删除多余无关联的数据例如两个表 表一:用户注册表 Reguser 字段: reg_id,reg_name,reg_time,reg_pass

怎么删除多余无关联的数据
例如两个表 
表一:用户注册表 Reguser
 字段: reg_id,reg_name,reg_time,reg_pass

表二: 用户信息表 UserInfo
 字段:u_id,u_regid,u_truename

其他字段省略了,u_regid 为外键 引用注册表的主键 

现在问题是 注册表中有多余的信息在用户信息表找不到相关联的数据 这些数据需要删除,请问这个删除语句怎么写?
第二个就是在删除注册表信息时,用户信息表的数据因各种原因没有被删除,请问删除用户信息表无关联的信息怎么写? 请大家帮忙。小弟刚学对此一无所知。


需要两条语句。一个是删除注册表中无关联的数据,另外就是删除信息表中无关联的数据。 sql 语句关联
[解决办法]
1、
delete from Reguser where not exists (select 1 from UserInfo where Reguser.reg_id=UserInfo.U_regid)

2、没看懂


[解决办法]

DELETE
    a
FROM
    UserInfo  AS a
INNER JOIN Reguser AS b ON a.reg_id=b.u_regid
WHERE
    NOT EXISTS ( SELECT
                    1
                 FROM
                    UserInfo
                 WHERE
                    a.reg_id=.u_regid )

[解决办法]
删除之前记得备份数据哦。
[解决办法]
问题一:
delete Reguser
where reg_id not in(select u_regid from UserInfo)


问题二:
删除表UserInfo没有受到任何约束

[解决办法]
有点问题。修改下:

DELETE
    a
FROM
    Reguser AS a
WHERE
    NOT EXISTS ( SELECT
                    1
                 FROM
                    UserInfo
                 WHERE
                    a.reg_id=u_regid )

[解决办法]
那就把上面的delete语句的表顺序反过来....
[解决办法]
delete from UserInfo where not exists (select 1 from Reguser  where Reguser.reg_id=UserInfo.U_regid)


reg_id和U_regid应该是对应的吧?

热点排行