Update

Update XXX set XXX where 这种写法大家肯定都知道,才发现update和delete居然支持inner join的update方式,这个在表间关联来做更新和删除操作非常有用.

列子:

Sql代码 
update tb_User   
set pass=''  
from tb_User usr   
inner join tb_Address addr on usr.nAddressFK = addr.nAddressID   
where usr.id=123

update tb_User 
set pass='' 
from tb_User usr 
inner join tb_Address addr on usr.nAddressFK = addr.nAddressID 
where usr.id=123update的格式是

update t1 set t1.name=’Liu’ from t1 inner join t2 on t1.id = t2.tid

MYSQL,ACCESS 写法如下:

Sql代码 
UPDATE mem_world AS mw1 INNER JOIN mem_world  AS  mw2     
ON  mw1.parentid = mw2.wid    
SET mw1.level = mw2.level     
WHERE mw2.baseid = 107     
AND  mw2.parentid = 0     
AND  mw2.size > 1;

UPDATE mem_world AS mw1 INNER JOIN mem_world  AS  mw2  
ON  mw1.parentid = mw2.wid 
SET mw1.level = mw2.level  
WHERE mw2.baseid = 107  
AND  mw2.parentid = 0  
AND  mw2.size > 1;

on是表连接的筛选条件 
就是说,表连接后,会产生一个类似于临时的视图这么一个东西 
where是从这个临时的视图中筛选数据的 
所以,你首先要搞清,你的所谓的2个条件属于哪一种

Delete

delete 语句也是类似

delete from t1 from t1 inner join t2 on t1.id = t2.tid

注意蓝色部分。

mysql:

Sql代码 
DELETE mwb FROM  mem_world_building AS mwb INNER JOIN mem_world AS mw   
ON mwb.wid = mw.wid   
where mw.type between 11 and 15    
and baseid = 107    
and mw.parentid <> 0    
and  mw.size > 1;

DELETE mwb FROM  mem_world_building AS mwb INNER JOIN mem_world AS mw 
ON mwb.wid = mw.wid 
where mw.type between 11 and 15 
and baseid = 107 
and mw.parentid <> 0 
and  mw.size > 1;  
下面是ORACLE的:

Sql代码 
DELETE TABLE1 where exists ( select 1 from table2 where and table1.khid=table2.khid and FWDWID=8);

DELETE TABLE1 where exists ( select 1 from table2 where and table1.khid=table2.khid and FWDWID=8);

Sql代码 
DELETE TABLE1 where KHID exists ( select KHID from table2 where FWDWID=8)

DELETE TABLE1 where KHID exists ( select KHID from table2 where FWDWID=8)

delete from inner join的更多相关文章

  1. SQL中的Update、delete与inner join 联合使用

    Update XXX set XXX where 这种写法大家肯定都知道,才发现update和delete居然支持inner join的update方式,太神奇了. update的格式是 update ...

  2. How to Delete using INNER JOIN with SQL Server?

    https://stackoverflow.com/questions/16481379/how-to-delete-using-inner-join-with-sql-server You need ...

  3. Delete from join 用法

    delete (别名) from tblA (别名) left join tblb (别名) on...用法 1.创建使用的表及数据 CREATE TABLE YSHA ( code ), NAME ...

  4. SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法

    在SQL Server中,UPDATE和DELETE语句是可以结合INNER/LEFT/RIGHT/FULL JOIN来使用的. 我们首先在数据库中新建两张表: [T_A] CREATE TABLE ...

  5. 优化系列 | DELETE子查询改写优化

    0.导读 有个采用子查询的DELETE执行得非常慢,改写成SELECT后执行却很快,最后把这个子查询DELETE改写成JOIN优化过程 1.问题描述 朋友遇到一个怪事,一个用子查询的DELETE,执行 ...

  6. NHibernate之映射文件配置说明

    NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表 ...

  7. 【转载】十步完全理解SQL

    很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语言.甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言) ...

  8. 转载文章----十步完全理解SQL

    转载地址:http://blog.jobbole.com/55086/ 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程 ...

  9. Select查询执行顺序

    链接:http://blog.jobbole.com/55086/ 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语 ...

随机推荐

  1. python的re模块常用方法

    正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身.一个正则表达式模式中的字母和数字匹配同样的字符串. 多数字母和数字前加一个反斜杠时会拥有不同的含义. 标点符号只 ...

  2. find_element——By 元素定位

    • find_element(By.ID,”loginName”)• find_element(By.NAME,”SubjectName”)• find_element(By.CLASS_NAME,” ...

  3. webforms字典参数处理

    当webforms参数中的value是一个字典时,加上‘’即可正常传参.

  4. POJ-2318 TOYS,暴力+叉积判断!

                                                                 TOYS 2页的提交记录终于搞明白了. 题意:一个盒子由n块挡板分成n+1块区 ...

  5. 九度oj 题目1114:神奇的口袋

    题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中 ...

  6. vue 使用Echarts 环形图 自定义legend formatter 富文本标签

    main.js 引入echarts // 引入echarts import Echarts from 'echarts' Vue.prototype.$echarts = Echarts   < ...

  7. BZOJ 2286 [Sdoi2011]消耗战 ——虚树

    虚树第一题. 大概就是建一颗只与询问有关的更小的新树,然后在虚树上DP #include <map> #include <ctime> #include <cmath&g ...

  8. BZOJ 2882 工艺 ——后缀自动机 最小表示法

    先说后缀自动机的做法. 直接把S串复制一遍成SS,然后建立后缀自动机,go边相当于在当前字符的后面插入,而son边可以看作在字符串前面加一个字符. 所以贪心的走字典序最小的边即可,而且根据后缀自动机的 ...

  9. UVa10539

    http://vjudge.net/problem/UVA-10539 先打出来sqrt(n)以内的素数表,然后对于每个素数x,他对答案的贡献就是最大的p使x^p<=n,即log(x,n).注意 ...

  10. Resin Thread Dump

    [2015/08/25 20:50:13.254] {ThreadLauncher2[ThreadPool[system]]-1} Thread Dump generated Tue Aug 25 2 ...