暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL中的update left join

原创 姚崇 2023-10-03
543

原SQL

image.png

MySQL中update left join 测试语句

drop table aa; drop table b; create table aa(id int,name varchar(100)); create table b(id int,name varchar(100)); insert into aa values(1,'aaaaa'); insert into aa values(2,'aaaaa'); insert into b values(1,'bbbbb'); select * from aa; id|name | --+-----+ 1|aaaaa| 2|aaaaa| select * from b; id|name | --+-----+ 1|bbbbb| --执行 update aa left join b on aa.id = b.id set aa.name = b.name; select * from aa; id|name | --+-----+ 1|bbbbb| 2| |

上述的结果是left join aa.id = b.id 匹配不到的结果将a的name设置为null了

MySQL update inner join 测试语句

drop table aa;
drop table b;

create table aa(id int,name varchar(100));
create table b(id int,name varchar(100));

insert into aa values(1,'aaaaa');
insert into aa values(2,'aaaaa');
insert into b values(1,'bbbbb');

select * from aa;
select * from b;

update aa 
inner join b on aa.id = b.id
set aa.name = b.name;
select * from aa;
id|name |
--+-----+
 1|bbbbb|
 2|aaaaa|

Oracle 和 PG都不支持上述SQL语句

Oracle 和 PostgreSQL MySQL都支持的SQL语句

SQL> UPDATE aa
  2  SET aa.name = (
  3      SELECT b.name
  4      FROM b
  5      WHERE aa.id = b.id
  6  );

2 rows updated.

SQL> select * from aa;

        ID NAME
---------- --------------------
         1 bbbbb
         2

image.png

最后修改时间:2023-10-03 11:31:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论