繁体   English   中英

使用mysql中的内部联接语法更新表

[英]update a table using inner join syntax in mysql

我很好奇如何使用内连接更新表。 如果我运行以下声明:

update tbl1 a
inner join tbl2 b using (id)
set a.val = b.val;

tbl1中的记录在tbl2没有匹配会tbl2什么? 他们根本不会更新并保留在tbl1吗? 它们会被删除吗?

我意识到我可以运行这个并得到答案,但我也对这在幕后如何工作的机制感兴趣,并希望有人可以为我阐明这一点。

问: tbl1tbl2没有匹配的记录会发生什么?

答:他们不会更新,因为他们与tbl2没有匹配。 根据定义,当两个表中至少有一个匹配时, INNER JOIN关键字返回行。 可以从表中删除记录的唯一关键字是DELETE DML。

update语句在tbl1上运行。

连接提供了一个过滤器,用于指定要在tbl1中更新的行。

作为额外的奖励,连接也为列提供值。

update语句不会也不能从表中删除行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM