从两个连接在一起的sql表中删除行

时间:2013-01-19 12:07:39

标签: c# sql sql-server wpf inner-join

有两个表:

Table1 : UserID Name Job
Table2 : BookID Book Car UserID

我在一个wpf datagrid中加载这两个表:

da.SelectCommand = new SqlCommand("select Table1.UserID, Table1.Name, Table1.Job, Table2.Book, Table2.Car from Table1 inner join Table2 on Table1.UserID = Table2.UserID");

我想通过DataGrid删除Table2中的一行:

 SqlCommand com = new SqlCommand("delete from Table2 where BookID=@BookID)",con);

但不行,

我该怎么做?

3 个答案:

答案 0 :(得分:0)

您必须使用以下方式删除行

DELETE FROM table2
WHERE  userid = (SELECT userid
                 FROM   table1);  

答案 1 :(得分:0)

你期待这样的事吗?

DELETE FROM B WHERE BOOKID IN (SELECT BOOKID FROM B,A WHERE B.USERID=A.USERID AND B.BOOK='ABCD'); 

答案 2 :(得分:0)

你说“它必须删除某个用户的书而不是所有书籍。” 您必须知道必须删除书籍的用户ID。

如果要删除用户图书,请执行以下操作:

从表2中删除userid in(user_id1,user_id1,etc .....); 但是你要删除大行,使用批量删除机制。

如果您没有用户ID并拥有图书ID,则必须执行此操作:

从Table2中删除bookid(book_id1,book_id2等); 或者从Table2中删除bookid =? //根据你的开发语言,你设置“?”参数。我不知道C#语法。