【发布时间】:2018-11-28 06:28:23
【问题描述】:
共有三个表 - mapping_hospital_procedure、master_hospital 和 master_procedure。
master_hospital 包含一个 id 列来标识每家医院。
master_procedure 还包含一个 id 列,用于相同目的,即识别每个过程。
mapping_hospital_procedure 用于将医院映射到医疗程序,除其他列外,还包含 hid(医院 ID)和 pid(程序 ID)列。现在,如果我运行这个查询:
SELECT hid FROM master_procedure
它没有像您期望的那样工作,因为master_procedure 中没有hid 列。但是如果我把这个查询放在一个子查询中,它工作得很好。比如像这样——
SELECT hid FROM mapping_hospital_procedure WHERE pid = (SELECT hid FROM master_procedure)
但它不应该工作,因为在master_procedure 中没有名为hid 的列。它应该给出与前一个查询相同的未知列错误。谁能解释这是为什么或如何工作的?
谢谢。
【问题讨论】: