如何从另一个表中删除带有匹配记录的记录?

问题描述:

我有以下看法(学生W/O schyrsem)表明,不从SchYrSem表中的相关记录的记录列表:如何从另一个表中删除带有匹配记录的记录?

SELECT Students.IDNo, Students.LastName, Students.FirstName 
FROM Students LEFT JOIN SchYrSem ON Students.[IDNo] = SchYrSem.[IDNo] 
WHERE (((SchYrSem.IDNo) Is Null)); 

当我删除的记录,它说:

视图或函数'w/o schyrsem'的学生不可更新,因为修改会影响多个基表。

任何想法如何删除学生表中没有匹配的记录在SchYrSem表中的记录?

DELETE s 
    FROM dbo.Students AS s 
    LEFT OUTER JOIN dbo.SchYrSem AS ss 
    ON ss.IDNo = s.IDNo 
    WHERE ss.IDNo IS NULL; 

或者

DELETE s  
    FROM dbo.Students AS s 
    WHERE NOT EXISTS 
    (
    SELECT 1 
     FROM dbo.SchYrSem 
     WHERE IDNo = s.IDNo 
); 

你不应该试图从视图中删除一行,恕我直言。

+0

非常感谢你... – jaypabs 2012-04-23 02:46:38