mysql查询更新删除_mysql查询,更新(text类型),删除关联操作
注意: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类型),删除关联操作相关推荐
- mysql 查询所有鎖_mysql查询锁
查询锁表进程: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程 show processlist 查询到相对应的进程===然后 kill ...
- mysql查询解析过程_MySQL查询执行过程详解
查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览.查询是一个独立的.功能强大的.具有计算功能和条件检索功能的数据库对象.MySQL数据库中,MySQL ...
- mysql 一周一月_mysql查询当天、本周,本月,上一个月的数据
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- MySQL查询的方法_MYSQL 查询方法
mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...
- mysql函数循环查询的数据_MySQL 查询树结构、循环查询、查看函数、视图、存储过程...
MySQL经常会用到查询树结构数据,这里专门收集整了一篇. 构建函数 构建树查询函数:查询父级节点函数 --在mysql中完成节点下的所有节点或节点上的所有父节点的查询--根据传入id查询所有父节点的 ...
- mysql 获取倒数第二_MySQL查询倒数第二条记录实现方法
有时候会用到查询倒数第二条记录复制代码 代码如下:last=HolderChangeHistory.find_by_sql ([" SELECT * FROM h ...
- mysql查询sql计划_MySQL 查询计划 总结
(一)查询计划 释义 查询计划: SQL语句是怎样进行执行的 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的.分析你的查询语句或 ...
- mysql查询语句 变量_mysql查询语句中用户变量的使用
先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...
- mysql经典45道题_MySQL查询 45道练习题
SQL查询45道练习题 1.查询Student表中的所有记录的Sname.Ssex和Class列. select sname,ssex,class from student 2.查询教师所有的单位即不 ...
- mysql将没有员工的部门都删除_Mysql 用sql语句实现删除与CLARK同部门的员工信息...
2015-11-23 回答 一. 简单查询 简单的transact-sql查询只包括选择列表.from子句和where子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询 ...
最新文章
- 干货 | 非常全面的谱聚类算法原理总结
- mysql(1):修改数据库密码
- 【转】CLR Profiler 性能分析工具 (转)
- 软件系统开发中的数据交换协议
- [技术分享]【DLI跨源】当DLI遇见MongoDB
- Codeforces.1129E.Legendary Tree(交互 二分)
- android_ndk_build_flags 配置,Android studio配置NDK问题小结
- 词性标注-隐马尔可夫模型
- 最受欢迎Java数据库访问框架大比拼,你独爱哪一款?
- 怎样添加图片到黑莓7290手机里?
- *** Error 65: Access violation at 0x00000004 : No 'write' permission
- 有关电影《邪不压正》和姜文系列
- jQuery实用网页元素颜色修改插件
- 华为大数据HCIA题目1
- 最好用的Android反编译、重新编译和签名工具-AntiDroid V1.3 发布了~
- 【日本动漫新番尝鲜】机动战士高达OO 第二季
- d3关联关系图力引导图,支持多条线,带箭头。
- PorterDuffXfermode的初级使用
- 20191025搜狐播放器安装之后的配置
- HTTP请求头格式和响应格式