用下面的语句就报语法出错: delete from tab_record where recordid not in (select min(c.recordid) as recordid from tab_record c group by (c.dev_Id+c.StartTime+c.EndTime+c.CardNum)); 报错如下:You can't specify target table '表名' for update in FROM clause 找到替代方案,改用下面的,
在MySQL中,写SQL语句的时候 ,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值. 问题解决 将SELECT出的结果再通过中间表SELECT一遍,这样就规避了错误. UPDATE t_e_mail_simplifySET is_seen = '0'WHERE mai
关联表更新字段 UPDATE tmp369faa3f7d224b0595670425008 as t1 SET FStatus=-1 where exists(select 1 from t_BD_Supplier where FUseOrgId = t1.FDestOrgID and FMasterId = t1.FMasterId) UPDATE 后面使用别名必须加AS: 另一种写法: update t_pm_otherowner set fcontrolunitid=(select fco
单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录. select distinct name from table得到的结果是: name a b
mysql把一个表的字段update成另一个表的字段根据id 1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具体sql语句如下:update activity a inner join (select id,founderid from org o) c on a.orgid =c.id set a.creator = c.founderid;
一个主表A(a1,a2),子表B(a1,b1,b2) ,想得到的结果是 [{a1,a2,Info [{b1,b2},{b1,b2},...}]] var list= from a in A join b in B on a.a1=b.a1 group b by a into g select new { g.key.a1, g.key.a2, Info=g.select (c=>new {c.b1,c.b2}).ToList() }.tolist()
UPDATE T_ASN_DTL ad1 SET ad1.cf03=( SELECT ac.TH003 FROM "T_ASN_DTL_copy" ac WHERE ac.udf06=ad1.INSPECTER_NAME and ac.udf05=ad1.LINE_ITEM_NO ) FROM "T_ASN_DTL_copy" ac WHERE ac.udf06=ad1.INSPECTER_NAME and ac.udf05=ad1.LINE_ITEM_NO) UP
A表数据 B表数据 现在要把B表 B_COSTS 的值update到A表 A_COSTS 字段 SQL语法: update a set (a.a_costs) = (select b.b_costs from b where a.id = b.id and a.a_id = b.b_id) where exists (select 1 from b where a.id = b.id and a.a_id = b.b_id) 结果:
1.多表更新: 下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法. 前期准备工作: update join_teacher_class join join_teacher on join_teacher_class.t_id=join_teacher.id set begin_date='0000-00-00',t_name='老夫子' where join_teacher.id=2; 1)查看join_teacher表信息: 2)查看
一.临时表妙用 -- 1.将老库中的mediaid和新库中的regionid对应上,然后插入到临时表中 SELECT * INTO #TempMediaRegion FROM (SELECT ww.C_MEDIA,C_ID FROM [NEWSYS].[LMSData].[dbo].Base_Region right JOIN openquery(CRM, 'select * from T_LOCREGION') ww ON C_CrmID=ww.C_REGION) hh -- 2.将媒体按媒体
今天凌晨因为要在数据库里做一些操作,是关于两表关联的update,但语句怎么写都不正确,老是报错,于是心惊肉跳(就怕不能及时完成操作)去查了一下,NND,原来把SQL写成了在SQL Server下面的特有形式,这种语法在Oracle下面是行不通的,急忙改回来,及时完成了任务.顺便也把查到的SQL帖出来,哪天再忘记了,也好在这里找回来: update customers a set city_name=(select b.city_name from tmp_cust_city b where b
Update中使用表别名 select中的表别名: select * from TableA as ta update中的表别名: update ta from TableA as ta 如何用表中一列值替换另一列的所有值 不同表列替换: update ta set ta.key1 = tb.key2 from TableA as ta, TableB as tb where ta.key = tb.key 同一表列替换: update ta set ta.key1 = tb.key2 from