首页 > 解决方案 > MY QUERY IS GIVING 错误代码:1242。子查询返回超过 1 行

问题描述

select doctor.Doc_Name from doctor 
where doctor.Dept_id=(select department.Dept_No from department where department.Estd_Date>='2013-03-10');

我知道我们可以通过加入/约束来进行此查询,但这不是我的问题。我想知道是否有一种方法可以使用嵌套子查询进行此查询?

标签: mysql

解决方案


正如消息所说,您的子查询

SELECT department.Dept_No FROM department WHERE department.Estd_Date >= '2013-03-10'

返回不止一行。您需要使用IN而不是=where 匹配多个值:

SELECT doctor.Doc_Name FROM doctor 
WHERE doctor.Dept_id IN (SELECT department.Dept_No FROM department WHERE department.Estd_Date >= '2013-03-10');

推荐阅读