当一个表具有大量数据而其他表具有很少数据时,在SQL Server中连接两个表

时间:2016-07-30 16:53:18

标签: sql sql-server sql-server-2008

如果我想连接两个表(不是内连接),左表有大量数据(数百万条记录),右表有很少的记录。我应该更喜欢什么(左或右外连接)以及为什么。

1 个答案:

答案 0 :(得分:2)

首先,该连接与表的大小无关

嗯我认为这取决于你想要从左表或右表中得到什么数据让我们假设你有两个表拥有数百万条记录的员工让我们把它放在右边,而有10条记录的部门把它放在左边每个员工都有一个部门。

<强>员工

  • 的EmpID
  • 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]

有关联接的详细信息,请使用下图 Sql Joins