sql - 连接多个表 - 更好的性能和准确的数据
问题描述
我的 SQL Server 中的表很少。
我需要如下结果
结果应包含结帐表中的员工详细信息以及其他表中的匹配记录
我写了以下脚本
select <columns from different tables> from Checkin i
inner join Checkout o on i.EmpCode=o.EmpCode
inner join Employee e on i.EmpCode=e.EmpCode
inner join City c on i.CityId=c.CityId
inner join Building b on i.BuildingId=b.BuildingcoId
这是正确的方法吗?它会包含重复值吗?
解决方案
如果您想要所有结帐,请从该表开始并使用外连接。然后,检查JOIN
条件:
select <columns from different tables>
from CheckOut co left join
Checkin ci
on co.cinid = ci.cinid left join
Employee e
on e.EmpCode = co.EmpCode left join
City c
on c.CityId = co.CityId left join
Building b
on b.BuildingId = co.BuildingId;
请注意,join
条件是 toCheckOut
而不是CheckIn
。