日期:2014-05-17  浏览次数:21026 次

求解一个删除记录的SQL语句~~
create   table   student
(
    sid   char(10)   primary   key,   //学号
    status   char(6),   //状态
    check(status   in   ( 'in ', 'out ')),//在籍,开除
);

create   table   score
(
    sid   char(10),//学号
    eid   varchar(5),   //eid为考试ID号,应该用不到
    grade   number(4,1),//成绩
    primary   key   (sid,eid),
    foreign   key   (sid)   references   student   (sid),
    foreign   key   (eid)   references   exam   (eid),
);

删除所有学生的状态为开除的学生表和成绩表数据。

用SQL。。。

------解决方案--------------------
1, 先删除成绩表
DELETE FROM score A
WHERE EXISTS (SELECT 1 FROM student WHERE sid = A.sid AND status = 'out ')

2, 再删除学生表
DELETE FROM student WHERE status = 'out '