gpt4 book ai didi

sql - 我们如何用 SELECT 子句中的子查询重写查询?

转载 作者:行者123 更新时间:2023-11-29 14:15:12 24 4
gpt4 key购买 nike

你会如何将下面的查询重写成一个尽可能没有子查询的查询?

Select dept name,
(Select Count(*)
From instructor
Where department.dept name = instructor.dept name
) As num_instructors
From department;

我想到了以下内容。它与上述等价吗?

   Select dept name, count(*)
From department, instructor
Where department.dept name = instructor.dept name
Group By department.dept_name;

谢谢。

最佳答案

编写查询的正确方法是使用显式 JOIN 语法:

select d.dept_name, count(i.dept_name)
from department d left join
instructor i
on d.dept_name = i.dept_name
group by d.dept_name;

如果您只关心至少有一名讲师的部门,则根本不需要 join:

select i.dept_name, count(*)
from instructor i
group by i.dept_name;

关于sql - 我们如何用 SELECT 子句中的子查询重写查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com