根据另一个表col值删除行

时间:2014-05-21 17:37:31

标签: sql sql-server-2008 sql-delete

我认为这很容易,但我的代码不起作用。

我想删除table1中包含select * from table2返回的名称的所有行,其中如果名称为“Simon”,则为member ='no'。即删除所有以'S'开头的非成员。

table1

name, age 
jane, 29 
simon, 30 
jessica, 20

table2

name, member
jane, yes
simon, no
jessica, no

结果table1是

name, age
jane, 29
jessica, 30

我的约会是

delete from table1 
where name = 'Simon' and table2.Member = 'No'

这给了我一个错误

  

无法绑定多部分标识符“Tools.Htf”

接下来我尝试加入表格,然后删除

DELETE FROM table1 t1 
INNER JOIN Table2 T1 ON O

但这似乎根本没有语法意义。

1 个答案:

答案 0 :(得分:4)

这可能就是你要做的。试一试

DELETE w
FROM table1 w
INNER JOIN table2 e
  ON w.name=e.name
Where w.name LIKE 's%' AND e.Member='No'