sqlserver delete join

为什么看别人的delete join好使我的不行
数据库是sqlserver

img

img

【以下回答由 GPT 生成】

可能的原因和解决方案:

在SQL Server中,DELETE JOIN的语法是不被支持的。可能的原因是您参考的代码使用的是其他数据库系统(如MySQL)支持的语法。

解决此问题的一种方法是使用子查询和DELETE语句分别删除相关表中的数据。以下是一个可能的解决方案:

DELETE FROM equipment_check_record
WHERE equipment_id IN
    (SELECT equipment_info.id
    FROM equipment_info
    JOIN info ON equipment_info.info_id = info.id
    WHERE info.valid = 51);

DELETE FROM equipment_info
WHERE info_id IN
    (SELECT id
    FROM info
    WHERE valid = 51);

在这个解决方案中,我们首先使用子查询选择要删除的equipment_check_record表中的equipment_id。然后,我们在删除equipment_check_record表之后删除equipment_info表中与已删除信息相关联的行。

请注意,具体的解决方案可能会根据您的数据库结构和需求略有不同,上述解决方案仅作为参考。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你看别人的是mysql吧?
SqlServer 的delete 一次只能删除一个表的数据

img


这种小错误不应该不会,编译器都提示你逗号那里错误了, 并且我这里要询问你,为什么delete后面的是表字段,还是你的表里有两个元组就是跟表名一样,这种创建表的方式是错误的


 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id