精华内容
下载资源
问答
  • 本文章总结了同时删除多个...批量删除多表删除所有pre_前缀表代码如下复制代码SELECT CONCAT( 'drop table ',table_name,'; ') FROM information_schema.tables whereinformation_schema.tables.TABLE_NAME LIK...

    本文章总结了同时删除多个数据表与同时删除多个数据表的关系数据的方法,有需要的朋友可参考一下。

    批量删除多表

    删除所有pre_前缀的表

    代码如下

    复制代码

    SELECT   CONCAT( 'drop table ',table_name,'; ')   FROM   information_schema.tables where

    information_schema.tables.TABLE_NAME LIKE 'pre_%' ;

    删除所有pre_前缀的表 并且 不删除pre_uc前缀的表

    代码如下

    复制代码

    SELECT   CONCAT( 'drop table ',table_name,'; ')   FROM   information_schema.tables WHERE

    information_schema.tables.TABLE_NAME LIKE 'pre_%' AND information_schema.tables.TABLE_NAME NOT LIKE

    'pre_uc%';将得到的结果复制下来,再重新执行

    删除多表同的数据

    MySQL数据库中,如果需要多张表同时删除数据,应该怎么做呢?下面就将为您介绍MySQL中多表删除的方法,希望对您有所启迪。

    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中是可以的)

    删除表中多余的重复记录,只留有rowid最小的记录(单字段)

    代码如下

    复制代码

    Delete From 表

    Where 字段1 In (Select 字段1 From 表 Group By 字段1 Having Count(字段1) > 1) And

    Rowid Not In (Select Min(Rowid) From 表 Group By 字段1 Having Count(字段1) > 1)

    删除表中多余的重复记录,只留有rowid最小的记录(多个字段)

    代码如下

    复制代码

    Delete From 表 a

    Where (a.字段1, a.字段2) In (Select 字段1, 字段2 From 表 Group By 字段1, 字段2 Having Count(*) > 1) And

    Rowid Not In (Select Min(Rowid) From 表 Group By 字段1, 字段2 Having Count(*) > 1)

    5.删除多于的重复记录(单个字段,多个字段)

    代码如下

    复制代码

    delete from table where id not in ( select min(id) from table group by name)

    或者

    delete from table where id not in ( select min(id) from table group by 字段1,字段2)

    6.删除多余的重复记录(单个字段,多个字段)

    代码如下

    复制代码

    delete from table where id in ( select max(id) from table group by name having count(*)>1)

    展开全文
  • MySQL多表关联数据同时删除sql语句 有需要朋友可参考。DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释:代码如下复制代码1 delete from t1 where 条件2 delete t1 from t1 where ...

    MySQL多表关联数据同时删除sql语句 有需要的朋友可参考。

    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 条件

    category(栏目信息表)和news(新闻数据表)。

    category中的id(栏目编号)字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

    news 中的id字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

    category_id(栏目编号)字段与category表的id字段相关联。

    1.SQL删除语句

    代码如下

    复制代码

    delete category,news from category left join news on category.id = news.category_id

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

    代码如下

    复制代码

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

    2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉1

    代码如下

    复制代码

    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、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉1

    代码如下

    复制代码

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

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

    如:1

    代码如下

    复制代码

    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中是可以的)

    上述语句改 写成1

    代码如下

    复制代码

    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=25MySQL多表关联数据同时删除sql语句 有需要的朋友可参考。

    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 条件

    category(栏目信息表)和news(新闻数据表)。

    category中的id(栏目编号)字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

    news 中的id字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

    category_id(栏目编号)字段与category表的id字段相关联。

    1.SQL删除语句

    代码如下

    复制代码

    delete category,news from category left join news on category.id = news.category_id

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

    代码如下

    复制代码

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

    2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉1

    代码如下

    复制代码

    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、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉1

    代码如下

    复制代码

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

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

    如:1

    代码如下

    复制代码

    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中是可以的)

    上述语句改 写成1

    代码如下

    复制代码

    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

    展开全文
  • sql生成删除多个表的sql语句再复制运行删除,已达到删除多表的数据 -- SELECT CONCAT("UPDATE ", table_name, " SET school_id='dapeng';") as gosql FROM -- information_schema.tables -- WHERE -- table_...

    sql生成删除多个表的sql语句再复制运行删除,已达到删除多表的数据

    -- SELECT CONCAT("UPDATE ",  table_name, " SET  school_id='dapeng';") as gosql FROM
    --   information_schema.tables
    -- WHERE
    --   table_schema = 'dapeng';
    
    
    -- UPDATE advertisement SET  school_id='dapeng';
    -- UPDATE announcement SET  school_id='dapeng';
    -- UPDATE announcement_comment SET  school_id='dapeng';
    -- UPDATE answer SET  school_id='dapeng';
    -- UPDATE answer_like SET  school_id='dapeng';
    -- UPDATE answer_vote SET  school_id='dapeng';
    -- UPDATE category SET  school_id='dapeng';


    展开全文
  • 出现题目中的错误,原因如下:在mysql中多表联合删除时,表别名只能在sql中表关联部分声明。我们应该避免不是表关联部分声明别名,因为这产生歧义的sql,从而产生不是期望的结果,例如在错误的表中删除行,举个例子来...

    在存储过程中,调用:

    delete a from db1.tb1 a, db2.tb2 b where a.col1 = b.col1 and a.col2 = b.col2;

    出现题目中的错误,原因如下:

    在mysql中多表联合删除时,表别名只能在sql中表关联部分声明。我们应该避免不是表关联部分声明别名,因为这产生歧义的sql,从而产生不是期望的结果,例如在错误的表中删除行,举个例子来说:

    DELETE t1 AS a2 FROM t1 AS a1 INNER JOIN t2 AS a2;

    对于多个表的删除,表的列表中提到的表别名的引用,使用默认数据库,除非已经明确地指定了一个数据库。例如,如果默认数据库是db1,下面的语句将不会工作,因为不确定的别名a2被认为已经有了db1:

    DELETE a1, a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2

    WHERE a1.id=a2.id;

    除了默认数据库外,为了正确地匹配表的别名,我们必须明确地指定正确的数据库的名字,

    DELETE a1, db2.a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2

    WHERE a1.id=a2.id;

    根据上述理论,我的sql应该这样写:

    delete db1.a from db1.tb1 a, db2.tb2 b where a.col1 = b.col1 and a.col2 = b.col2;

    还有需要注意的是:

    1.如果你为一个表声明了别名,当你指向这个表的时候,就必须使用这个别名,例如:

    -- 正确的写法:

    DELETE t1 FROM test AS t1, test2 WHERE ...

    -- 错误的写法:

    DELETE test FROM test AS t1, test2 WHERE ...

    2.在多个表联合删除时,不能使用order by 或limit,而单个表的删除时就没有这个限制。

    3.当前,我们还不能在删除表的时候,在子查询中select from相同的表。

    展开全文
  • MySQL多表关联数据同时删除sql语句 有需要朋友可参考。DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释:代码如下1 delete from t1 where 条件2 delete t1 from t1 where 条件3 ...
  • 1、mysql 多表关联delete中使用别名,tblwenhq是真实表名,a是tblwenhq别名,b是另一个表名代码如下DELETE a FROM tblwenhq a,b where a.id=b.id2、使用mysql进行delete from操作时,若子查询 FROM 字句和更新/...
  • sql语句语法多表关联To delete a record in a table you use the DELETE statement. 要删除表中记录,请使用DELETE语句。 Be careful. You can delete all records of the table or just a few. Use the WHERE ...
  • 删除表的sql语句

    2018-01-04 13:53:30
    可以一次性删除多张表:drop table 表名1,表名2,.....; 删除表 a
  • MySQL多表关联数据同时删除sql语句 有需要朋友可参考。DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释:代码如下复制代码1 delete from t1 where 条件2 delete t1 from t1 where ...
  • 30种mysql优化sql语句查询方法_计算机软件及应用_IT/计算机_专业资...简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份 sql server --...
  • MySQL多表关联数据同时删除sql语句 DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释: 代码如下 复制代码 1 delete from t1 where 条件 2 delete t1 from t1 where 条件 3 delete t1 ...
  • 官方给出 DROP 关键字删除表结构语法如下:DROP [TEMPORARY] TABLE [IF EXISTS]tbl_name [, tbl_name] ...[RESTRICT | CASCADE]当然, 删除表结构需要你使用数据库账号具有对应权限。从中可以看出, DROP TABLE...
  • MySQL多表关联数据同时删除sql语句 有需要朋友可参考。DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释:代码如下复制代码1 delete from t1 where 条件2 delete t1 from t1 where ...
  • Oracle 中对一个个列的增加和删除的sql语句: ·增加个列 alter table 表名 add(列名1 VARCHAR2(20),列名2 VARCHAR2(64 char),列名3 VARCHAR2(200)); ·删除个列 alter table 表名 drop(列名1...
  • 表的联结:全联结7.sqlzoo练习一、表的加法复制一张course1表的加法sql语句select 课程号,课程名称 from course union select 课程号,课程名称 from course1;注:上述sql执行后删除了重复值,要保留重复值将union...
  • DELETE删除多表数据,怎样才能同时删除多个关联表数据呢?这里做了深入解释:1 delete from t1 where 条件2 delete t1 from t1 where 条件3 delete t1 from t1,...也就是简单用delete语句无法进行多表删除数据操...
  • 分别是新闻类型、新闻列表、评论列表,如果我要删除一条新闻类型,连带该新闻类型对应新闻,和每条新闻对应新闻评论也一并删除,这个SQL语句该怎么写? (比如删除第一张表中id为2新闻类型,那么第二张表中...
  • PostgresSql 多表关联删除语句

    千次阅读 2019-07-07 14:02:58
    最近用PostgresSql数据库进行多表关联删除的操作,在写sql语句的时候遇到了问题: DELETE s.* FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1 DELETE FROM student s,classroom c WHERE s.cid = ...
  • 我在自己实体中演示了下,下面是代62616964757a686964616fe58685e5aeb931333332616433码:--创建临时create table #TB_A(FID int,FName nvarchar(10),FDate datetime)create table #TB_B(FID int,FUserID int,...
  • MySQL中多表删除的方法如下:1、从MySQL数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id2、从MySQL数据表t1里在...
  • 此次主要介绍多表查询中三部分:合并查询结果、连接查询(交叉连接、内连接、左连接、右连接、全连接)和CASE表达式。1、合并查询结果· 含义:利用UNION关键字可以给出多条SELECT语句,并将结果组合成单个结果集...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,135
精华内容 854
关键字:

多表删除的sql语句