迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

MySQL 中 UPDATE JOIN 的使用

作者:迹忆客 最近更新:2024/03/25 浏览次数:

本教程将介绍如何在 MySQL 数据库中使用 UPDATE JOIN 语句。

我们通常使用 joins 来遍历特定表中的行,这些行在其他表中有或可能没有类似的行。我们可以在 UPDATE 语句旁边使用 JOIN 子句来实现多个表更新。

MySQL UPDATE JOIN 的基本语法如下所示。

UPDATE Table_1, Table_2,
[INNER JOIN] Table_1 ON Table_1.Column_1 = Table_2. Column_1
SET Table_1.Column_2 = Table_2.Column_2, 
    Table_2.Column_3 = expression
WHERE condition

对于 MySQL 中的特定表,上述语法的工作方式如下。

  • 我们通过指定名为 table_1 的主表和我们想要与主表连接的表作为 table_2 来开始我们的工作。UPDATE 子句中提及的表被更新,UPDATE 子句后未提及的表中的数据不会被更改。
  • 一旦我们这样做,我们必须提及我们希望使用的连接类型。在上面的语法中,我们使用了 INNER 连接。此连接必须紧跟在 UPDATE 子句之后。
  • 在为我们希望更新的列提供值之后,我们提到一个 WHERE 子句来指定更新的特定条件。

还有另一种使用此方法的方法,如下所示。

UPDATE Table_1, Table_2
SET Table_1.column_2 = Table_2.column_2,
      Table_2.column_3 = expr
WHERE Table_1.column_1 = Table_2.column_1 AND condition

在开始之前,让我们创建两个要使用的表。我们将这些表称为 student_detailsmarks。可以使用以下代码创建这些表。

CREATE TABLE marks (
    performance INT(11) NOT NULL,
    percentage FLOAT NOT NULL,
    PRIMARY KEY (performance)
);

CREATE TABLE student_details (
    stu_id INT(11) NOT NULL AUTO_INCREMENT,
    stu_name VARCHAR(255) NOT NULL,
    performance INT(11) DEFAULT NULL,
    total FLOAT DEFAULT NULL,
    PRIMARY KEY (emp_id),
    CONSTRAINT fk_performance FOREIGN KEY (performance)
        REFERENCES marks (performance)
);

INSERT INTO marks(performance,percentage)
VALUES(1,0),
      (2,0.01),
      (3,0.03),
      (4,0.05),
      (5,0.08);

INSERT INTO student_details(stu_name,performance,total)      
VALUES('Preet Sanghavi', 1, 50000),
      ('Joe Sand', 3, 65000),
      ('Su Greens', 4, 75000),
      ('Gray Dellop', 5, 125000),
      ('Neon Jonty', 3, 85000),
      ('Peter Foe', 2, 45000),
      ('Little Wayne', 3, 55000);

为了可视化 student_details 表,我们使用以下代码。

SELECT * FROM student_details;

上面的代码将给出以下输出。

stu_id   stu_name 		stu_performance total
1		Preet Sanghavi		1			50000
2		Joe Sand			3			65000
3		Su Greens			4			75000
4		Gray Dellop			5			125000
5		Neon Jonty			3			85000
6		Peter Foe			2			45000
7		Little Wayne		3			55000

同样,我们可以可视化 marks 表。

SELECT * FROM marks;

上面的代码将给出以下输出。

performance    percentage 
1				0
2				0.01
3				0.03
4				0.05
5				0.08

从上面的代码块我们可以看到,百分比值在 marks 表中,我们必须使用 UPDATE JOININNER JOIN 作为我们的主连接来调整每个学生的 total student_details 表基于 marks 表中 percentageperformance 的值。

现在让我们看看 UPDATE JOIN 语句的实际作用。


在 MySQL 中使用 UPDATE JOIN statement.in

我们可以使用以下查询执行上述更新操作。

UPDATE student_details
        INNER JOIN
    marks ON student_details.performance = marks.performance 
SET 
    total = total + total * percentage;

这里,student_details 表是需要更新 total 值的主表。

上述查询的输出将给出以下结果。

stu_id   stu_name 		stu_performance total
1		Preet Sanghavi		1			50000
2		Joe Sand			3			66950
3		Su Greens			4			78750
4		Gray Dellop			5			135000
5		Neon Jonty			3			87550
6		Peter Foe			2			45450
7		Little Wayne		3			56650

正如我们在上面的代码块中看到的,每个学生的总分是根据他/她在分数表中的表现更新的。

因此,借助上述技术,我们可以有效地在 MySQL 中使用 Update Join

上一篇:MySQL 中 Row_Number() 函数的使用

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

MySQL 级联删除

发布时间:2024/03/25 浏览次数:114 分类:MySQL

本文介绍 MySQL 中的删除级联

MySQL 中的 rank 函数

发布时间:2024/03/25 浏览次数:156 分类:MySQL

本教程演示了在 MySQL 数据库中使用 rank 函数。

MySQL 函数

发布时间:2024/03/25 浏览次数:74 分类:MySQL

本文介绍如何在 MySQL 中使用和创建一个简单的函数。

MySQL with 子句

发布时间:2024/03/25 浏览次数:79 分类:MySQL

本教程教你 MySQL with 子句。它还指导你在何处以及如何使用 MySQL With 子句

MySQL Tinytext

发布时间:2024/03/25 浏览次数:109 分类:MySQL

本文介绍了如何在 MySQL 中使用不同的数据类型。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便