如何从另一个表中删除带有匹配记录的记录?
问题描述:
我有以下看法(学生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
);
你不应该试图从视图中删除一行,恕我直言。
非常感谢你... – jaypabs 2012-04-23 02:46:38