SQL-联表更新

update leave_employeeInfo set  
EmployeeID              =o.EmployeeID                          , 
EmployeeCode            =o.EmployeeCode                        ,                
Gender                  =o.Gender                              ,           
Telephone               =o.Telephone                           ,           
PostCode                =o.PostCode                            ,           
LMEmployeeID            =o.LMEmployeeID                        ,           
LMENName                =o.LMENName                            ,           
LMCNName                =o.LMCNName                            ,           
MgrOfLMEmployeeID       =o.MgrOfLMEmployeeID                   ,           
MgrOfLMENName           =o.MgrOfLMENName                       ,           
MgrOfLMCNName           =o.MgrOfLMCNName                       ,           
DottedLMEmployeeId      =o.DottedLMEmployeeId                  ,           
DottedLMENName          =o.DottedLMENName                      ,           
DottedLMCNName          =o.DottedLMCNName                      ,           
AllPartTimePositionID   =o.AllPartTimePositionID               ,           
Status                  =o.Status                              ,           
ParentPositionID        =s.ParentPositionID                    ,           
PositionCode            =s.PositionCode                        ,           
     
ProductTeamCode         =s.ProductTeamCode                     ,           
CostCenterCode          =s.CostCenterCode                      ,           
LegalEntityID           =s.LegalEntityID                       ,           
LegalEntityName         =s.LegalEntityName                     ,           
pStatus                 =s.Status                 
  from leave_employeeInfo e ,OCM_EmployeeSnapshot o,OCM_PositionSnapshot s   where e.employeeID = o.EmployeeID and s.PositionID=o.PositionID and  o.Status<>'expired'


删除


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中是可以的)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值