如果我想连接两个表(不是内连接),左表有大量数据(数百万条记录),右表有很少的记录。我应该更喜欢什么(左或右外连接)以及为什么。
答案 0 :(得分:2)
首先,该连接与表的大小无关
嗯我认为这取决于你想要从左表或右表中得到什么数据让我们假设你有两个表拥有数百万条记录的员工让我们把它放在右边,而有10条记录的部门把它放在左边每个员工都有一个部门。
<强>员工强>
DepartmentID的
<强>系强>
DepartmentID的
部门名称
现在假设您想知道哪个员工属于哪个部门使用此查询。
Select e.empId,d.DepartmentName
from employee e
join department d
on e.departmentid=d.departmentid
现在假设您想知道哪个员工现在已经分配了任何部门 使用以下查询
Select e.empId,d.DepartmentName
from employee e
left join department d
on e.departmentid=d.departmentid
where d.departmentid is null
现在假设您想知道有哪些员工使用以下查询
Select d.[Department Name],COUNT(e.empID) from Employee e
left join Department d
on e.DepartmentId=d.DepartmentId
group by d.[Department Name]