您可以将此子查询转换为连接吗?
SELECT staff_no
FROM doctor
WHERE NOT EXISTS (SELECT *
FROM patient
WHERE staff_no = consultant_no);
答案 0 :(得分:7)
SELECT staff_no
FROM doctor
LEFT JOIN
patient
ON staff_no = consultant_no
WHERE consultant_no IS NULL
为了提高效率,consultant_no
应编入索引并声明为NOT NULL
。
如果不是,请选择患者中声明为NOT NULL
的任何列,并使用consultant_no
子句中的此列替换WHERE
。
在我的博客中查看此文章,了解在MySQL
中执行此查询的三种方法的比较:
答案 1 :(得分:3)
SELECT staff_no
FROM doctor
LEFT JOIN patient
ON staff_no = consultant_no
WHERE consultant_no IS NULL