作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 SQL 中有两个表,其结构如下:
1) 医生表
DoctorId PendingCases OngoingCases CompletedCases
2) 案例表
CaseId DoctorId CaseStatus
在案例表中,如果 CaseStatus 设置为 0,则它是待处理案例,如果设置为 1,则它是正在进行的案例,如果设置为 2,则它是已完成的案例。
因此,给定医生 ID 的医生的待处理病例数将是:
select count(*) as 'Pending Cases'
from Cases
Where doctorid = '993883'
and casestatus = 0;
但我需要这些信息来自动更新 doctor 表内的三列。我知道我必须使用触发器,如果你能演示一下那就太好了。
最佳答案
不更新表,只使用 View
CREATE VIEW doctors AS
SELECT
doctorId,
SUM(IF(casestatus = 0, 1, 0)) AS pending,
SUM(IF(casestatus = 1, 1, 0)) AS ongoing,
SUM(IF(casestatus = 2, 1, 0)) AS completed
FROM cases
GROUP BY doctorId;
然后你可以像这样查询 View
SELECT * FROM doctors WHERE doctorId = 993883;
关于mysql - 如果在 SQL 中更新了另一个表列,如何更新表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43752910/
我是一名优秀的程序员,十分优秀!