如何使用SQL查询诊断为癫痫且主治医生为Lisa的患者信息及医生专科?
问题解决:查询符合条件的患者及主治医生信息
原SQL存在的问题
你提供的SQL使用UNION是错误的,因为UNION要求两个结果集的列数、数据类型完全匹配,但第一个查询返回3个患者相关字段,第二个查询仅返回1个医生专业字段,这种合并逻辑无法实现「同一行同时包含患者信息和其主治医生专业」的需求。
正确的SQL语句
SELECT p.patient_id, p.first_name, p.last_name, ph.specialty FROM patients p JOIN admissions a ON p.patient_id = a.patient_id JOIN physicians ph ON a.attending_physician_id = ph.physician_id WHERE a.diagnosis = 'Epilepsy' AND ph.first_name = 'Lisa' ORDER BY RAND() LIMIT 6;
语句说明
- 表关联逻辑:
- 通过
patients.patient_id关联admissions.patient_id,匹配患者对应的住院诊断记录 - 通过
admissions.attending_physician_id关联physicians.physician_id,匹配住院记录对应的主治医生
- 通过
- 筛选条件:同时满足诊断为
Epilepsy、主治医生名为Lisa两个要求 - 结果处理:保留你原SQL中随机排序并取前6条的逻辑
参考表结构
patients表
patient_id INT first_name TEXT last_name TEXT gender CHAR(1) birth_date DATE city TEXT province_id CHAR(2) allergies TEXT height INT weight INT
admissions表
patient_id INT admission_date DATE discharge_date DATE diagnosis TEXT attending_physician_id INT
physicians表
physician_id INT first_name TEXT last_name TEXT specialty TEXT
内容的提问来源于stack exchange,提问作者mick
相关产品推荐
相关产品推荐

