您可以将此子查询转换为连接吗?
SELECT staff_no
FROM doctor
WHERE NOT EXISTS (SELECT *
FROM patient
WHERE staff_no = consultant_no);
Run Code Online (Sandbox Code Playgroud)
SELECT staff_no
FROM doctor
LEFT JOIN
patient
ON staff_no = consultant_no
WHERE consultant_no IS NULL
Run Code Online (Sandbox Code Playgroud)
为了提高效率,consultant_no
应将其编入索引并声明为NOT NULL
.
如果不是,请选择NOT NULL
在患者中声明的任何列,并consultant_no
在您的WHERE
子句中替换此列.
请参阅我的博客中的这篇文章,以比较执行此查询的三种方法MySQL
: