注意:mysql中不支持全关联,支持左外,右外关联,oracle支持全关联查询

1.今天做了这么一个需求,简单抽离说明一下:操作表:biz_pu_arrival_detail 关联表:ba_inventory

需求是将 关联表中的 propertyId 赋值给 操作表中的propertyId,关联条件是操作表中的 inventoryId字段和关联表中的id 关联。

错误解答:开始写的sql是这样的:

UPDATE  (SELECT detail.id,detail.propertyId,ba.propertyId AS pid FROM biz_pu_arrival_detail detail JOIN ba_inventory ba ON detail.inventoryId = ba.id WHERE detail.`propertyId` IS NULL AND  detail.orgid =4967219392022528) a SET a.propertyId = a.pid ;

因为 update table t set t.oldName = t.newName 是可以执行的;

但是执行结果报The target table a of the UPDATE is not updatable,原因是不能对虚拟视图做操作,update数据需要对物理表操作;

正确解答:

UPDATE biz_pu_arrival_detail detail

JOIN ba_inventory ba ON ba.orgId = detail.orgId AND detail.inventoryId = ba.id

SET detail.propertyId = ba.propertyId

WHERE detail.`propertyId` IS NULL  AND  detail.orgid =4967219392022528;

知识点:关联语句不仅仅只有关联查询,还可以关联更新,同样可以关联删除操作,之前只知道可以关联查询,特此记录

2.具体关联形式

2.1 双等号关联

select  a.*,b.* from a,b where a.pid = b.pid

2.2 外关联(左外关联,右外关联,全外关联)

select a.*,b.* from a

left(right,full)(outer )join b on a.pid = b.pid

where a.name is not null ...

左外和右外关联 只是主表不同,在 a,b表中有对应不上的数据时,如果左外关联 那么会把a 中的所有数据查询,b表中没有对应的关联数据时,为null,右外关联相反,全外关联 是左外和右外的和

2.3 内关联

select a.* ,b.* from a join b on a.pid =b.pid

或者 select a.*, b.* from a inner join b on a.pid = b.pid;

3关联删除操作:

delete detail, voucher

from biz_st_rdrecord_detail detail

inner join biz_st_rdrecord voucher on voucher.orgId = detail.orgId

and voucher.id = detail.voucherId

where detail.orgId = #{orgId}

and voucher.sourceVoucherTypeId in (1000030008, 1000030009);

加个塞!!!!

之前做了一个需要更新大字段text类型的字段内容,内容用于关键字匹配用,现在需要增加关键字了,如何更新,这里因为数据库不止一个,需要写升级脚本,同时执行

正常字段的update:update table set column1 = '' where id = 123;

道理一样text更新内容:update table set keyStr = concat(keyStr,'abc',' def') where id = 123;

mysql查询更新删除_mysql查询,更新(text类型),删除关联操作相关推荐

  1. mysql 查询所有鎖_mysql查询锁

    查询锁表进程: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程 show processlist 查询到相对应的进程===然后 kill   ...

  2. mysql查询解析过程_MySQL查询执行过程详解

    查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览.查询是一个独立的.功能强大的.具有计算功能和条件检索功能的数据库对象.MySQL数据库中,MySQL ...

  3. mysql 一周一月_mysql查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  4. MySQL查询的方法_MYSQL 查询方法

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...

  5. mysql函数循环查询的数据_MySQL 查询树结构、循环查询、查看函数、视图、存储过程...

    MySQL经常会用到查询树结构数据,这里专门收集整了一篇. 构建函数 构建树查询函数:查询父级节点函数 --在mysql中完成节点下的所有节点或节点上的所有父节点的查询--根据传入id查询所有父节点的 ...

  6. mysql 获取倒数第二_MySQL查询倒数第二条记录实现方法

    有时候会用到查询倒数第二条记录复制代码 代码如下:last=HolderChangeHistory.find_by_sql (["               SELECT * FROM h ...

  7. mysql查询sql计划_MySQL 查询计划 总结

    (一)查询计划 释义 查询计划: SQL语句是怎样进行执行的 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的.分析你的查询语句或 ...

  8. mysql查询语句 变量_mysql查询语句中用户变量的使用

    先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...

  9. mysql经典45道题_MySQL查询 45道练习题

    SQL查询45道练习题 1.查询Student表中的所有记录的Sname.Ssex和Class列. select sname,ssex,class from student 2.查询教师所有的单位即不 ...

  10. mysql将没有员工的部门都删除_Mysql 用sql语句实现删除与CLARK同部门的员工信息...

    2015-11-23 回答 一. 简单查询 简单的transact-sql查询只包括选择列表.from子句和where子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询 ...

最新文章

  1. 干货 | 非常全面的谱聚类算法原理总结
  2. mysql(1):修改数据库密码
  3. 【转】CLR Profiler 性能分析工具 (转)
  4. 软件系统开发中的数据交换协议
  5. [技术分享]【DLI跨源】当DLI遇见MongoDB
  6. Codeforces.1129E.Legendary Tree(交互 二分)
  7. android_ndk_build_flags 配置,Android studio配置NDK问题小结
  8. 词性标注-隐马尔可夫模型
  9. 最受欢迎Java数据库访问框架大比拼,你独爱哪一款?
  10. 怎样添加图片到黑莓7290手机里?
  11. *** Error 65: Access violation at 0x00000004 : No 'write' permission
  12. 有关电影《邪不压正》和姜文系列
  13. jQuery实用网页元素颜色修改插件
  14. 华为大数据HCIA题目1
  15. 最好用的Android反编译、重新编译和签名工具-AntiDroid V1.3 发布了~
  16. 【日本动漫新番尝鲜】机动战士高达OO 第二季
  17. d3关联关系图力引导图,支持多条线,带箭头。
  18. PorterDuffXfermode的初级使用
  19. 20191025搜狐播放器安装之后的配置
  20. HTTP请求头格式和响应格式

热门文章

  1. lucene中文分词搜索的核心代码
  2. 同花顺黄金分割线及斐波那契数列分析网格(主图公式)
  3. Delphi的Indy通信中发送流文件的注意事项
  4. Java后台框架篇--Spring与Restful风格API接口开发
  5. G1垃圾回收器总结一
  6. Mac、centos安装MongoDB
  7. 富士胶片携数据磁带亮相大数据产业博览会
  8. java中的Map每次只能put一次,写段增强的put,可以一次put很多次
  9. 转载:动态调用WebService(C#)
  10. 用vmware workstation做双机集群的详细过程(三)