在mysql中删除数据方法有很多种,最常用的是使用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中是可以的

DELETE怎样删除关联数据,实现级联删除

create TABLE IF NOT EXISTS `dcsmember`(
`id` int(3) auto_increment not null primary key,
`name` varchar(12) not null,
`password` varchar(40) not null,
`phonenumber` char(20),
`time` DATETIME NOT NULL, 
`jifen` int(8)  not null DEFAULT '20',
`email` varchar(40) NOT NULL,
`power` int(2) NOT NULL DEFAULT '1'
)CHARACTER SET gb2312";
create TABLE  IF NOT EXISTS `sp`(
`spid` int(5) auto_increment not null primary key,
`spuserid` int(3) not null,
`spname` varchar(12) not null,
`spmoney` float(6) not null,
`spopt` char(20) not null,
`spsay` varchar(50),
`sptime` DATE DEFAULT '2008-10-01',
`spendor` TINYINT(1) DEFAULT '1',
INDEX ( `spuserid` ) 
)CHARACTER SET gb2312";

 代码如下 复制代码
$sqldel="DELETE FROM dcsmember WHERE email='$value'";

现在我用从会员表中删除会员的资料
,还需要删除另外一个表中会员的资料,dcsmember.ID是外码,对应sp.spuserid,?
怎样写才可以

 代码如下 复制代码

delete d, s from dcsmember d inner join sp s on d.id = s.spuserid where d.email="xxxxxx"

MYSQL中delete删除多表数据与删除关联数据的更多相关文章

  1. MYSQL中delete删除多表数据

    MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...

  2. MySQL中基本的多表连接查询教程

    一.多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如: SELECT * FROM table1 CROSS JOIN ...

  3. Mysql中的分库分表

    mysql中的分库分表分库:减少并发问题分表:降低了分布式事务分表 1.垂直分表 把其中的不常用的基础信息提取出来,放到一个表中通过id进行关联.降低表的大小来控制性能,但是这种方式没有解决高数据量带 ...

  4. MySQL中InnoDB锁不住表的原因

    MySQL中InnoDB锁不住表是因为如下两个参数的设置: mysql> show variables like '%timeout%'; +-------------------------- ...

  5. mysql中delete from in子查询删除失败

    遇到一个情况,想通过表1的id找到表2,删除表2中barcode关联的库存数据,然后一直不能失败,如下: delete from 库存表 where BARCODE in( select BARCOD ...

  6. mysql中delete的表别名使用方法

    在 mapper.xml 中的 dynamicWhere 动态查询中使用了表别名,Delete 语句引用了动态查询,如下: <delete id="delete" param ...

  7. mysql 中delete和trncate区别

    mysql中删除表记录delete from和truncate table的用法区别: MySQL中有两种删除表中记录的方法:(1)delete from语句,(2)truncate table语句. ...

  8. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  9. Mysql中索引的 创建,查看,删除,修改

    创建索引 MySQL创建索引的语法如下: ? 1 2 3 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON ...

随机推荐

  1. UltraEdit中java代码换行问题

    在很多开发中始用的文本编辑器中UltraEdit是非常主流的种了,但是,随着版本的更新,最近几版中出现了以下问题 问题描述:当用UltraEd(14.0版本)编写Java代码时,当遇到{}换行时,希望 ...

  2. 关于MyEclipse启动时的插件启动(Maven4MyEclipse)

    在myEclipse的应用中有许多插件在开发的时候都用不到,那么,这些插件在启动myEclipse的时候一起启动的越少越好了 Maven4Myeclipse update 每当启动myEclipse的 ...

  3. Yii2 数据操作DAO

    参考: http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.dao http://blog.csdn.net/hzqghost/artic ...

  4. ELK 之四:搭建集群处理日PV 四亿次超大访问量优化方法

    最近公司的网站访问量越来越大,采用4台高配置服务器做后端Server,前端使用一个负载,日志从后端4台服务器收集到ELK统计,但是最近Logstash经常出问题,每次启动运行三四个小时就挂了,分析是由 ...

  5. 2013 南京邀请赛 K题 yet another end of the world

    /** 大意:给定一组x[],y[],z[] 确定有没有两个不同的x[i], x[j] 看是否存在一个ID使得 y[i]<=ID%x[i]<=z[i] y[j]<=ID%x[j]&l ...

  6. iOS 数据库第三方FMDB的简单使用

    一 FMDB的简单说明及介绍 FMDB的github地址 https://github.com/ccgus/fmdb FMDB是一款简洁的,易用的封装库,简单介绍一下FMDB的使用 在FMDB下载文件 ...

  7. Dijkstra 模板 最短路

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents ------------------------------------------ ...

  8. Maven--构建企业级仓库(二)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)>              看到经历的两家公司 ...

  9. Codeforces Round #315 (Div. 2A) 569A Music (模拟)

    题目:Click here 题意:(据说这个题的题意坑了不少人啊~~~)题目一共给了3个数---- T 表示歌曲的长度(s).S 表示下载了歌曲的S后开始第一次播放(也就是说S秒的歌曲是事先下载好的) ...

  10. Socket编程模式

    Socket编程模式 本文主要分析了几种Socket编程的模式.主要包括基本的阻塞Socket.非阻塞Socket.I/O多路复用.其中,阻塞和非阻塞是相对于套接字来说的,而其他的模式本质上来说是基于 ...