您的位置:首页 > 数据库

广东国税——用户与用户组信息删除(SQL语句结果集与结果集取反)

2007-11-13 18:32 691 查看

-- *************************************************************************************************************


-- 三个表:USERS(ID)


-- USER_USERGROUP(GROUPID USERID)


-- USERGROUP(GROUPID)


-- USERS表与USERGROUP表通过USER_USERGROUP表实现关联,并有外键约束。


-- 删除USERS与USERGROUP中任一表里的记录,都需要先把USER_USERGROUP表里相关
-- 信息删除。


-- **************************************************************************************************************


--管理员用户信息


SELECT * FROM USERS WHERE NAME = 'system';


SELECT * FROM USER_USERGROUP WHERE USERID = '1';


SELECT * FROM USERGROUP WHERE GROUPID = '100';




--===USERS表


SELECT * FROM USERS; --只剩东莞信息。


--东莞信息。查找存在USERS表中在USER_USERGROUP表有记录的记录,共1790条记录。


SELECT * FROM USERS


WHERE ID IN


(SELECT USERID FROM USER_USERGROUP


WHERE GROUPID = '100'


OR GROUPID = '117'


OR (GROUPID >= '272' AND GROUPID <= '306'));


--非东莞信息。查找存在USERS表中在USER_USERGROUP表没有记录的记录。与上一SQL语句结果相反。


SELECT * FROM USERS


WHERE ID NOT IN


(SELECT USERID FROM USER_USERGROUP


WHERE GROUPID = '100'


OR GROUPID = '117'


OR (GROUPID >= '272' AND GROUPID <= '306'));




--删除非东莞信息


DELETE FROM USERS


WHERE ID NOT IN


(SELECT USERID FROM USER_USERGROUP


WHERE GROUPID = '100'


OR GROUPID = '117'


OR (GROUPID >= '272' AND GROUPID <= '306'));




--===USER_USERGROUP表


SELECT * FROM USER_USERGROUP; --只剩东莞信息


--东莞信息,1790条记录


SELECT * FROM USER_USERGROUP


WHERE GROUPID = '100'


OR GROUPID = '117'


OR (GROUPID >= '272' AND GROUPID <= '306');


--非东莞信息,上一SQL语句结果集取反。


SELECT * FROM USER_USERGROUP


WHERE GROUPID <> '100'


AND GROUPID <> '117'


AND (GROUPID < '272' OR GROUPID > '306');


--删除非东莞信息


DELETE FROM USER_USERGROUP


WHERE GROUPID <> '100'


AND GROUPID <> '117'


AND (GROUPID < '272' OR GROUPID > '306');




--===USERGROUP表,37条记录。


SELECT * FROM USERGROUP; --只剩下东莞


--东莞信息


SELECT * FROM USERGROUP


WHERE GROUPID = '100'


OR GROUPDESC LIKE '%东莞%';


--非东莞信息,上一SQL语句结果集取反。


SELECT * FROM USERGROUP


WHERE GROUPID <> '100'


AND GROUPDESC NOT LIKE '%东莞%';


--删除非东莞信息


DELETE FROM USERGROUP


WHERE GROUPID <> '100'


AND GROUPDESC NOT LIKE '%东莞%';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: