服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - mysql多表join时候update更新数据的方法

mysql多表join时候update更新数据的方法

2019-11-16 16:12MYSQL教程网 Mysql

如果item表的name字段为''就用resource_library 表的resource_name字段前面加上字符串Review更新它,他们的关联关系在表resource_review_link中。

sql语句:

复制代码代码如下:


update item i,resource_library r,resource_review_link l set i.name=CONCAT('Review:',r.resource_name) where i.item_id=l.instance_id 
and l.level='item' and r.resource_id=l.resource_id and i.name='' 



JOIN UPDATE & JOIN DELETE 

复制代码代码如下:


update a 
set a.schoolname = b.schoolname 
from tb_Std as a join tb_Sch as b on a.School = b.School 
where a.std_year = 2005 
go 
/* 
(2 row(s) affected) 
*/ 
select * 
from tb_Std as a join tb_Sch as b on a.School = b.School 
/* 
A School A A School 
2 2005 A A School A A School 
3 2004 C A School C C School 
4 2005 D D School D D School 
(4 row(s) affected) 
*/ 

 

复制代码代码如下:


delete a 
from table1 a, table2 b 
where a.col1 = b.col1 
and a.col2 = b.col2 


The above SQL statement runs fine in SQL Server. 
If the Oracle 9i has different syntax or if there is any other way to accomplish this with a single delete statement that would be really helpful. 

> Hi, 

> Is the following delete statement possible in Oracle 9i. 

> delete a 
> from table1 a, table2 b 
> where a.col1 = b.col1 
> and a.col2 = b.col2 

> The above SQL statement runs fine in SQL Server. 

> If the Oracle 9i has different syntax or if there is any other way to accomplish this with a single delete statement that would be really helpful. 

> Thanx in advance. 

> -Bheem 
Bheem, 
Try this: 
DELETE FROM table1 a where exists (select 1 from table2 b 
where a.col1 = b.col1 and a.col2 = b.col2); 
Hope this helps, 
Tom K.

 

延伸 · 阅读

精彩推荐