【发布时间】:2012-01-18 23:40:44
【问题描述】:
拥有这个架构
Doctor(licence_no, doctor_name, specialty)
Patient(pat_id, pat_name, pat_address, pat_phone, date_of_birth)
Visit(licence_no, pat_id, date, type, diagnosis, charge)
并且我想获取访问过所有医生的所有患者的姓名 我是这样做的
SELECT p.pat_name FROM Patient p
INNER JOIN Visit v ON (v.pat_ID = p.pat_ID)
INNER JOIN Doctor d ON (d.licence_no = v.licence_no)
WHERE (SELECT d.licence_no FROM Doctor d) = (SELECT v.licence_no FROM Visit v2 WHERE
p.pat_ID =v.pat_ID)
但由于子查询返回的值超过 1 个,因此出现错误,我必须确保该患者已访问所有医生,有什么建议吗?
【问题讨论】:
标签: mysql sql sql-server sql-server-2008