精华内容
下载资源
问答
  • 多表删除

    2019-04-15 21:53:35
    多表删除 开发工具与关键技术:VS MVC 作者:彭春怡 撰写时间:2019/4/13 IT的朋友们,今天给大家介绍,新增、修改、删除、查询里面删除,在学习IT的过程,学习这四个知识点四不可避免的。删除呢也是不可或缺的,...
                        多表删除
    
    开发工具与关键技术:VS  MVC
    作者:彭春怡
    撰写时间:2019/4/13
    

    IT的朋友们,今天给大家介绍,新增、修改、删除、查询里面删除,在学习IT的过程,学习这四个知识点四不可避免的。删除呢也是不可或缺的,大家平常使用的软件,大部分都是离不开删除的按钮。而删除呢,有单项删除,就是一次只能删除一个的,就是字面上的意思。还有一个批量删除,批量删除呢,就是一次性可以删除多项的。这个在多项删除时使用是比较方便的,不用一个个的选择并删除,那么麻烦。
    而本人想给大家介绍的不是单项删除也不是批量删除,是多表删除。当然这个删除需要获取对应的ID信息才可以进行删除,是控制器里面的删除方法。本人学术不精,如有不,欢迎指教,谢谢。
    下面开始批量删除的介绍:
    图1
    在这里插入图片描述
    要写一个方法,首先是写关键字,“public”就是关键字。然后是后面跟着一个参数,给方法一个命名,“DeletStudent”是给方法的命名,给它传递一个组件。定义好方法后,开始写删除操作。先写一个提示信息实体:给它一个实体类“ReturnJson”,然后命名一个名称,这个名称可以随便命名,不固定的,只是老师的课上是习惯性的跟它前面的实体类相同,把实体类的前面大写字母写为小写,“ReturnJson returnJson = new ReturnJson();”一句代码就是创建一个实体类。Int声明变量,“intSuceessCount”变量是记录删除成功的条数,“intFailCount”变量是记录失败的条数。然后判断studentIDsde的值。“IsNullOrEmpty”指示指定的字符串为空还是string。“if (!string.IsNullOrEmpty(studentIDs))”这一句代码的意思是如果不为空。如果不为空,就获取studentIDs数组,声明studentIDs获取的数组。“Split(’;’)”分段的意思,“;”是截取标志,是数组用来分段的截取标志,分段后把分段好的数组放进strStudentIDs里面。
    图2
    在这里插入图片描述
    foreach是循环的意思,strStudentIDs是一个集合,是接收前面StudentID的。“int studentID = Convert.ToInt32(StudentID);”int是因为studentID是int类型,所以用int。“Convert”的意思是将现有的数据类型,转换为另一个数据类型,“ToInt32”的意思是将数字的指定字符串表示形式转换为等效的32位带符号的整数。是一句代码的意思是将过号里面的StudentID转换为整数studentID。try是用来捕错误的,然后呢,就是写查询了,这里用到的是单表查询,你需要删除那个表里面的内容就写哪个表的单表查询,写你想在那个表里面删除的内容。那么上图呢,我想查询的是PW_Student表里面的内容,首先是写PW_Student表格,给它命名一个名称。第一步呢就是查询表的来源:“from tbStudent in myModels.PW_Student”意思是PW_Student来自于tbStudent。第二条件查询:tbStudent的条件,就是这句代码“int studentID = Convert.ToInt32(StudentID);” 将过号里面的StudentID转换为整数studentID,作为tbStudent的条件。第三查询tbStudent的返回数据:Single();返回序列的元素。然后呢就是把PW_student表里面查询到要删除的内容删除掉,“myModels.PW_Student.Remove(dbstudent);”这句代码的意思是在数据库PW_Student表查询出dbstudent要删除的内容,删除掉,Remove是删除的意思。“var userID = dbstudent.UserID;”这句代码的意思是获取删除的学生对应的UserID。因为我这里要查询三个表的内容所以写三个查询,意思都是一样的。接下来就是保存学生的更改,++就是每次自动加1.
    图3在这里插入图片描述
    第一和第二句代码的意思是删除成功,returnJson返回true,returnJson就会提示总共删除了多少条学生信息。然后就是提示删除成功的数据与删除失败的数据有多少。if是如果的意思,如果intSuceessCount大于0,returnJson就会提示intSuceessCount删除成功了多少条学生数据信息。如果intFailCount大于0,那么returnJson提示intFailCount删除失败多少条学生数据。
    图4
    在这里插入图片描述
    Else是如果数据出现异常,returnJson便会返回false,returnJson就会提示参数异常,return是返回值,每个方法都需要给它一个返回值,要不然方法的命名便会报错。除了返回值,还要给它一个提交,“AllowGet”是提交的意思。
    留言:
    以上是我在课堂上学到的一点小知识,希望给初学者的ID朋友们带来一点小帮助,如有不对欢迎指教,谢谢。

    展开全文
  • 原文链接 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: ...也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实

    原文链接
    DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释:

    1    delete from t1 where 条件
    2    delete t1 from t1 where 条件
    3    delete t1 from t1,t2 where 条件
    4    delete t1,t2 from t1,t2 where 条件
    

    前 3者是可行的,第4者不可行。
    也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据。

    1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉(只删除一个表中的数据)

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

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

    2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉(只删除一个表中的数据)

    DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL
    

    DELETE FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL
    

    3、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉

    DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25
    

    注意此处的delete t1,t2 from 中的t1,t2不能是别名

    如:

    delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25
    

    在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)

    上述语句改 写成

    delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25
    

    在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)

    展开全文
  • mysql 单表、多表删除的两种关联删除方式: delete t1 from t1,t2 where ..., delete from t1 using t1, t2 where ...以及表别名使用。

    1、单表删除两种关联方式

    关联方式1:基本语法

    DELETE t1 FROM t1,t2 WHERE ...
    

    关联方式1:案例应用

    delete a from sale_so_bill a, sale_so_bill_detail b
    where a.co_id = b.co_id and a.bill_no = b.bill_no and b.ckbill_no = 'SW201901040002'
    

    关联方式2:基本语法

    DELETE FROM t1 USING t1,t2 WHERE ...
    

    关联方式2:案例应用,注意表别名的应用,可以使sql更简洁

    delete from a using sale_so_bill a, sale_so_bill_detail b
    where a.co_id = b.co_id and a.bill_no = b.bill_no and b.ckbill_no = 'SW201901040002'
    

    2、多表删除

    关联方式1:基本语法

    DELETE t1,t2 FROM t1,t2,t3 WHERE ...
    

    关联方式1:案例应用

    delete a,b from sale_so_bill a, sale_so_bill_detail b
    where a.co_id = b.co_id and a.bill_no = b.bill_no and b.ckbill_no = 'SW201901040002'
    

    关联方式2:基本语法

    DELETE FROM t1,t2 USING t1,t2,t3 WHERE ...
    

    关联方式2:案例应用,注意表别名的应用,可以使sql更简洁

    delete from a,b using sale_so_bill a, sale_so_bill_detail b
    where a.co_id = b.co_id and a.bill_no = b.bill_no and b.ckbill_no = 'SW201901040002'
    
    展开全文
  • mysql多表删除

    2017-10-29 19:49:33
    这几天在看mysql的中文版手册,发现DELETE还可以多表删除数据,但是目前在项目中还没有遇到过有人这样写的。在此记录一下,以免以后遇到怀有疑问。 先用以下sql构造测试的数据库数据: CREATE TABLE `grade` ( `...
    
    
    这几天在看mysql的中文版手册,发现DELETE还可以多表删除数据,但是目前在项目中还没有遇到过有人这样写的。在此记录一下,以免以后遇到怀有疑问。
    先用以下sql构造测试的数据库数据:
    CREATE TABLE `grade` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(8) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    INSERT INTO `grade` VALUES (1, '一年级');
    INSERT INTO `grade` VALUES (2, '二年级');
    INSERT INTO `grade` VALUES (3, '三年级');
    
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `grade_id` bigint(20) NOT NULL COMMENT '年纪id',
      `name` varchar(8) DEFAULT NULL,
      `sex` tinyint(2) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
    INSERT INTO `student` VALUES (1, 1, '张三', 1);
    INSERT INTO `student` VALUES (2, 2, '李四', 2)
    

    表很简单,一目了然,不做解释。
    1. 从student表中把那些grade_id值在grade表里有匹配的记录全删除掉,即删除所有年级的学生。
    DELETE student FROM student, grade WHERE student.grade_id=grade.id;
    以上sql等价于:
    DELETE FROM student USING student, grade WHERE student.grade_id=grade.id;
    当然也可以指定grade_id:
    DELETE FROM student USING student, grade WHERE student.grade_id=grade.id AND grade_id = 1;
    2.删除所有没有年级的学生。
    DELETE student FROM student LEFT JOIN grade ON student.grade_id = grade.id WHERE grade.id IS NULL;
    或者
    DELETE  FROM student USING student LEFT JOIN grade ON student.grade_id = grade.id WHERE grade.id IS NULL;
    3.删除三年级和所有三年级的学生。
    DELETE grade,student FROM grade LEFT JOIN student ON grade.id = student.grade_id WHERE grade.id=3;
    可以理解成从查询的结果中删除:
    SELECT * FROM grade LEFT JOIN student ON grade.id = student.grade_id WHERE grade.id=3;

    以上根据这两个表列举多表删除的语法的例子,场景不太合适,只是用来理解。


    展开全文
  • 多表删除和更新

    千次阅读 2018-01-10 15:33:14
    多表删除 -- 将从表 t1 里把其 id 值可以在另一个表 t2 里找到的所有行全部删掉 DELETE t1 FROM t1 INNER JOIN t2 ON t1.id = t2.id; -- 从两个表里把 id 值相匹配的行都删除掉 DELETE t1,t2 FROM t1 INNER JOIN ...
  • MySQL语句如何实现多表删除 小编第一次在这里发表博客,如有什么不足之处,还望大家多多谅解,下面步入正题,这里以留言表,评论表,回复表为例: 留言表(message): id ID 评论表(comment): id ID user_id 用户...
  • <br />oracle 多表删除 同时删除多表中关联数据 <br />1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE ...
  • 多表删除 第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。 仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。效果就是,你要以从多个表中同时删除记录...
  • 1.多表删除DELETE table1 ,table2 FROM table1 left JOIN table2 ON table1.id = table2.tool_id WHERE table1.id =#{id}2. UNION和UNION allUNION用的比较多union all是直接连接,取到得是所有值,记录可能有...
  • Oracle中主从多表删除数据

    千次阅读 2012-12-28 18:32:21
    Oracle中主从多表删除数据时,必须用级联删除吗? 一个主表,带了三个从表,一一关联,A为主表 A->B->C->D 从A表中删除一条数据时,要把BCD表里相关的数据都删除的话 用什么方法最好,必须用级联删除吗? --------...
  • DELETE语句无法进行多表数据删除,即
  • 1.多表删除的mysql语句 DELETE t_w_channel, t_w_channelext FROM t_w_channel LEFT JOIN t_w_channelext  ON t_w_channel.id = t_w_channelext.channelid WHERE t_w_channel.id=61;
  • delete实现多表删除

    2015-11-27 17:26:36
    DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1 delete from t1 where 条件 2 delete t1 from t1 where 条件 3 delete t1 from t1,t2 where 条件 4 delete t1,t2...
  • SQL delete语句 之多表删除 总结

    千次阅读 2018-12-13 01:57:15
    delete语句用于删除表中已经存在的整行数据 Tbl_name关键词代表删除数据的目标表 Where子句代表被删除数据的满足条件,如果没有where...delete单表删除举例 Delete from students; delete from students wher...
  • 多表删除共同数据

    2018-02-08 16:09:26
    假设有三张表:t_traval_detail,t_todo ,t_bill_class 目的:我要删除t_traval_detail中符合d.SYSUSER = 'li_tao' 和d.CREATEDATE LIKE '20180201113205%'的三张表中所有相关的数据,DELETE d,t,cFROM t_traval...
  • SQL多表删除

    千次阅读 2012-07-24 16:33:13
    大概问题就是:两张相关联的,当根据要求删除一张的数据时,另一张表里对应的数据也被删除!也就是说,第一张表t1里面有个tid,name,time字段;第二张表t2里有个id,tid,photo字段;两张相关联的字段时tid;...
  • mysql一条语句删除多表(多表删除

    千次阅读 2013-10-27 16:17:44
    语句1:delete from sheng,city,dian using sheng,city,dian ...注:这条语句执行时,要保证三个中必须有满足语句中要求的数据是才可以删除,否则数据不能删除,但不提示错误,因为语法正确 语句2:DELETE a,b fr
  • C# Mysql 多表 删除操作

    2018-07-31 22:03:38
    string pMysqlDelete = "DELETE `成绩`,`花名册` FROM `成绩` INNER JOIN `花名册` ON `成绩`.`学号`=`花名册`.`学号` WHERE `花名册`.`学号`=@...作用是删除 成绩和花名册中的对应的学号字段值...
  • mysql之多表删除

    2019-05-20 15:09:26
    DELETE t1 FROM  tdb_goods AS t1 LEFT JOIN (  SELECT  goods_name,  goods_id  FROM  tdb_goods  GROUP BY  goods_name  HAVING  count(goods_name) >= 2 ...//删除商品中存在的重复的数据
  • mysql 多表删除

    2011-04-22 15:58:00
    http://blog.csdn.net/musttieying/archive/2006/06/07/777467.aspx<br />  1、从数据t1中把那些id值在数据t2里有匹配的记录全删除掉DELETEt1FROMt1,t2WHEREt1.id=t2.id 或DELETE FROMt1USINGt1,...
  • 目录一、连接二、多表删除一、join连接 连接条件 三种连接类型示意图 1、内连接:inner join mysql> select a.id,a.name from ceshi AS a inner join ceshi_two AS b on a.name = b.name;2、左外连接 mysql> select ...
  • mybaits多表删除问题

    千次阅读 2017-03-28 19:56:24
    2、直接写条语句,用“;”隔开即可   DELETE FROM kw_promotion_application WHERE id=#{id}; DELETE FROM kw_promotion_application_approval WHERE promotion_application_id=#{id}; DELETE ...
  • SQL Server 多表删除

    2015-04-02 23:56:00
    第一步:  建表  create table t1(x int, y int); create table t2(x int, y int); go  insert into t1(x,y) values(1,2),(2,3),(3,4),(4,5),(5,6); insert into t2(x,y) values(1,2),(2,3)... 删除t1中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,880
精华内容 8,352
关键字:

多表删除