我有一个二手车数据库和四个有关系的表。相同的列名有关系。
表是:Record
: RecID 标记名称模型...Features
: FeatureID 功能名称Marks
: MarkID 标记名Carfeature
: CarfeatureID RecID FeatureID
现在,我想从 c# 中的 Marks 中删除一个标记。当我删除一个标记时,SQL 必须删除所有具有该标记的记录。
我使用了这样的查询:
DELETE from Carfeature
where RecID = (select RecID
from Record
where Mark = (select markname
from Marks
where MarkID=@MarkID))";
string sorgudelmarkfromrecord = "DELETE from Record where Mark=
(select Markname from Marks where MarkID=@MarkID)";
string sorgudelmark = "DELETE from Marks where MarkID=@MarkID";
当我运行它时,我收到如下错误消息:
Subquery
返回 超过 1 值(value)。这在
subquery
时是不允许的关注 =, !=, <, <= , >, >=
或者当subquery
用作表达式。该语句已终止。
那么,如何从表中删除多个数据?
最佳答案
如果我理解正确,您可以使用此查询删除 cerrain MarkID 的所有 CarFeatures:
DELETE FROM CarFeature
WHERE RecID IN (
select RecID
from Record
where Markname IN (
select Markname
from Marks
where MarkID = @MarkID
)
)
删除记录和标记是此查询的更简单版本,我将把确切的 SQL 留给您。
关于sql - 如何删除 SQL Server 中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1586225/