mysql - MySql - 嵌套选择 - 如何从第一个表中选择值?
问题描述
**Table Doctor**
*ID Name Other Value*
1 Jane X
2 John Y
3 Jame Z
**Table Patient**
*ID Name Other Value*
1 Mary A
2 Mark B
3 Mel C
**Table Appointment**
*ID PatientID DoctorID OtherValue*
1 1 1 X
2 3 2 Y
**Table Exam**
*ID ExamName*
1 Blood Exam
2 Pregnant Exam
**Table RequestExam**
*ID AppointmentID ExamID*
1 1 1
2 2 2
**Table ResultExam**
*ID RequestExamID OtherValues*
1 1 XYZA
2 2 ABCD
**Table DoctorDecision**
*ID ResultExamID OtherValues*
1 1 Qwerty
2 2 Asdfgh
我想知道是否可以从最后一个表(Table DoctorDecision)中获取患者和医生的姓名?如何选择它?我正在尝试进行一些连接,但不确定是否可以从第一个表中获取值。
示例 - 我如何知道最后一个表中 ResultExamID = 1 的医生姓名、患者姓名和检查姓名?
解决方案
此查询应为您提供所需的信息:
SELECT p.Name, d.Name, e.ExamName
FROM DoctorDecision dd
JOIN ResultExam re ON re.ID = dd.ResultExamID
JOIN RequestExam qe ON qe.ID = re.RequestExamID
JOIN Exam e ON e.ID = qe.ExamID
JOIN Appointment a ON a.ID = qe.AppointmentID
JOIN Patient p ON p.ID = a.PatientID
JOIN Doctor d ON d.ID = a.DoctorID
WHERE dd.ResultExamID = 1
输出(用于您的样本数据)
Name Name ExamName
Mary Jane Blood Exam
SQLFiddle上的演示
推荐阅读
- debugging - 执行不会记录在 Apps 脚本信息中心的 Stackdriver 日志中
- ansible - 如何在ansible playbook中的when条件下使用主机变量
- google-chrome - 使用 HTTPS 从 chrome 从 S3 下载图像时出现 CORS 错误,但在 Firefox 中同样有效
- c# - Form1.cs [设计] 不见了
- amazon-web-services - 将 IAM 密钥分配给数据中心
- android - 有没有一种方法可以在颤振中实现一种像信标一样的蓝牙广播?
- docker - 超过 6 小时无法查询 Graphite
- vba - 使用回复模板从以前的电子邮件加载图像
- javascript - 为什么我的 React 组件渲染两次?
- jquery - 覆盖 .ytp-cued-thumbnail-overlay-image 的 css 属性