教員表
| ID | 名稱 | 部門名稱 | 薪水 |
|---|---|---|---|
| 10101 | 斯里尼瓦桑 | 比較 科學。 | 65000.00 |
| 12121 | 吳 | 金融 | 90000.00 |
| 15151 | 莫扎特 | 音樂 | 40000.00 |
| 22222 | 愛因斯坦 | 物理 | 95000.00 |
| 32343 | 賽義德 | 歷史 | 60000.00 |
| 33456 | 金子 | 物理 | 87000.00 |
| 45565 | 卡茨 | 比較 科學。 | 75000.00 |
| 58583 | 卡利菲里 | 歷史 | 62000.00 |
| 76543 | 辛格 | 金融 | 80000.00 |
| 76766 | 克里克 | 生物學 | 72000.00 |
| 83821 | 布蘭特 | 比較 科學。 | 92000.00 |
| 98345 | 金 | 電子 英。 | 80000.00 |
示教表
| ID | course_id | sec_id | 學期 | 年 |
|---|---|---|---|---|
| 76766 | 生物101 | 1 | 夏天 | 2017年 |
| 76766 | 生物301 | 1 | 夏天 | 2018年 |
| 10101 | CS-101 | 1 | 落下 | 2017年 |
| 83821 | CS-190 | 1 | 春天 | 2017年 |
| 83821 | CS-190 | 2 | 春天 | 2017年 |
| 83821 | CS-319 | 2 | 春天 | 2018年 |
| 10101 | CS-347 | 1 | 落下 | 2017年 |
| 98345 | EE-18 | 1 | 春天 | 2017年 |
| 22222 | PHY-101 | 1 | 落下 | 2017年 |
我試過這個
update instructor
set salary = 10000 * (
select count(distinct sec_id, semester, year)
from teaches
where instruction.ID = teaches.ID);
uj5u.com熱心網友回復:
我不知道以下方法是否是您的預期結果,但如果不是您問題的解決方案,它可能會給您提示。
CREATE TABLE instructor (
id int,
name varchar(25),
dept_name varchar(50),
salary decimal(10,2) );
INSERT INTO instructor VALUES
(10101,'Srinivasan',"Comp. Sci.",65000.00),
(12121,'Wu','Finance',90000.00),
(15151,'Mozart','Music',40000.00),
(22222,'Einstein','Physics',95000.00),
(32343,'El Said','History',60000.00),
(33456,'Gold','Physics',87000.00),
(45565,'Katz','Comp. Sci.',75000.00),
(58583,'Califieri','History',62000.00),
(76543,'Singh','Finance',80000.00),
(76766,'Crick','Biology',72000.00),
(83821,'Brandt','Comp. Sci.',92000.00),
(98345,'Kim','Elec. Eng.',80000.00);
CREATE TABLE teaches (
id int,
course_id varchar(25),
sec_id int,
semester varchar(20),
year int );
INSERT INTO teaches VALUES
(76766,'BIO-101',1,'Summer',2017),
(76766,'BIO-301',1,'Summer',2018),
(10101,'CS-101',1,'Fall',2017),
(83821,'CS-190',1,'Spring',2017),
(83821,'CS-190',2,'Spring',2017),
(83821,'CS-319',2,'Spring',2018),
(10101,'CS-347',1,'Fall',2017),
(98345,'EE-18',1,'Spring',2017),
(22222,'PHY-101',1,'Fall',2017);
update instructor i
inner join
( select id,
count(distinct course_id) as cource_id_count
from teaches
group by id
) as t1 on t1.id=i.id
set i.salary= 10000 * t1.cource_id_count;
演示:https : //dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2a33159d87254d3a39535ccd9bf542d3
檢查有關更新的更多詳細資訊:https : //dev.mysql.com/doc/refman/5.6/en/update.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/395478.html
上一篇:替換mongodb資料庫中的欄位
