Sql server 从SQL Server中的两个表中删除
我有两个有很多IP地址的表,我想从两个表中删除相同的IP地址。我试了两次,但都不管用 我尝试的第一个查询是:Sql server 从SQL Server中的两个表中删除,sql-server,sql-delete,Sql Server,Sql Delete,我有两个有很多IP地址的表,我想从两个表中删除相同的IP地址。我试了两次,但都不管用 我尝试的第一个查询是: Delete FROM table1, table2 WHERE table1.IpAdd != table2.Ipaddress 第二个问题是: DELETE table1, table2 FROM table1 INNER JOIN table2 WHERE table1.IpAdd = table2.Ipaddress 为什么不使用表1中的外键将它们绑定到表2中呢。所
Delete FROM table1, table2
WHERE table1.IpAdd != table2.Ipaddress
第二个问题是:
DELETE table1, table2
FROM table1
INNER JOIN table2
WHERE table1.IpAdd = table2.Ipaddress
为什么不使用表1中的外键将它们绑定到表2中呢。所以,若主键中有delete,它也会自动删除其他表中的类似条目 要创建外键研究,请执行以下操作:
您的sql语句相互冲突。但是,您在文本中声明要删除ip地址匹配的记录。在任何情况下,sql server都不支持像您尝试的那样从2个表中删除。
简单的方法是使用select和第二次尝试的join将ip地址插入到临时表中,并从每个连接到临时表的表中删除记录。如果要删除两个表中的重复行,请使用以下脚本:
DECLARE @table Table([Ip] varchar(20))
SELECT t1.IpAdd
INTO @table
FROM table1 t1 INNER JOIN table2 t2 On t1.IpAdd = t2.Ipaddress
DELETE FROM table1
WHERE table1.IpAdd In (SELECT [Ip] FROM @table)
DELETE FROM table2
WHERE table2.Ipaddress In (SELECT [Ip] FROM @table)
我想去掉两个表中的两个相似数据。是的,因此当您从表1中删除一个条目,如
192.168.0.10
时,它会自动从表2中删除同一行。我还添加了一个映像。为此,您至少需要一个表将ip列作为主键。