| 要计算新员工的工资,不能使用 UPDATE INNER JOIN 语句(为什么不能,可参考sql之left join、right join、inner join的区别),因为它们的绩效数据在 merits表中不可用。这就是为什么要使用 UPDATE LEFT JOIN 来实现了。 当 UPDATE LEFT JOIN 语句在另一个表中没有相应行时,就会更新表中的一行。 例如,可以使用以下语句将新雇员的工资增加1.5%: UPDATE employeesLEFT JOIN
 merits ON employees.performance = merits.performance
 SET
 salary = salary + salary * 0.015
 WHERE
 merits.percentage IS NULL;
 执行结果如下: mysql> UPDATE employeesLEFT JOIN
 merits ON employees.performance = merits.performance
 SET
 salary = salary + salary * 0.015
 WHERE
 merits.percentage IS NULL;
 Query OK, 2 rows affected
 Rows matched: 2 Changed: 2 Warnings: 0
 mysql> select * from employees;+--------+---------------+-------------+--------+
 | emp_id | emp_name  | performance | salary |
 +--------+---------------+-------------+--------+
 |  1 | Mary Doe  |   1 | 50000 |
 |  2 | Cindy Minsu |   3 | 66950 |
 |  3 | Sue Greenspan |   4 | 78750 |
 |  4 | Grace Dell |   5 | 135000 |
 |  5 | Nancy Johnson |   3 | 87550 |
 |  6 | John Doe  |   2 | 45450 |
 |  7 | Lily Bush  |   3 | 56650 |
 |  8 | Jack William | NULL  | 43645 |
 |  9 | Ricky Bond | NULL  | 52780 |
 +--------+---------------+-------------+--------+
 9 rows in set
 示例 # 单表joinupdate bbs_uhome_card_activate ca INNER JOIN bbs_uhome_card_rules cr on ca.card_brach=cr.card_bach set ca.create_user=cr.create_user;
 # 多表joinUPDATE bbs_uhome_card_order co INNER JOIN bbs_uhome_card_order_record cor on co.order_no=cor.order_no JOIN bbs_uhome_card_activate ca on cor.card_no=ca.card_no set co.create_user=ca.create_user
 到此这篇关于Mysql联表update数据的示例详解的文章就介绍到这了,更多相关Mysql联表update数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! (编辑:锡盟站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |