sql - 如何删除 SQL Server 中的多行

标签 sql sql-server tsql

我有一个二手车数据库和四个有关系的表。相同的列名有关系。

表是: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/

相关文章:

mysql - 将列值修改为按顺序排列

mysql - 从 select 语句插入日期时出现问题错误代码 : 1292 MySQL

sql - 在不知道字符串长度的情况下删除额外的逗号

sql - 跨多个服务器运行 SQL 脚本

sql-server - SQL 查询 - 按几列过滤有效和无效数据

sql-server - 如何在 SQL Server 中包含系统注释中的换行符?

sql-server - SSDT数据对比,登录失败

sql-server - 我怎样才能让这个查询返回 0 而不是 null?

sql - 如何使用 SUM 和 CASE 计算输赢?

sql - INNER JOIN 和 , COMMA 的区别