【发布时间】:2015-03-25 04:39:48
【问题描述】:
我是 SQL Server 的新手,我不是在寻找解决方案(但它可能对其他人有所帮助),相反,我想了解行为/为什么我从下面的两个伪查询中得到两个不同的结果。
我加入另外两个表的原因是因为我需要根据“车库”中的“日期记录”来计算车辆中的所有项目。所有记录自 2010 年以来。所以在我这样做之前,我想确保我从表“汽车”中获得相同的总数,并且在加入“车库”条件之前的连接结果也相同,那是我注意到结果的差异的时候。
我原以为连接会被忽略?
希望有人可以提供建议?提前致谢!
SELECT count(Car.CAR_ID) AS Car_ID
FROM Vehicle Car
INNER JOIN Road Rd
ON Car.CAR_ID = Rd.CAR_ID
JOIN Garage g
ON Rd.GARAGE_ID = g.GARAGE_ID
----------------------------------------------
Car_ID
----------------------------------------------
226923
SELECT count(Car.CAR_ID) AS Car_ID
FROM Vehicle Car
----------------------------------------------
Car_ID
----------------------------------------------
203417
【问题讨论】:
-
仅供参考 - 我认为这与您的问题无关,但在您的查询中,INNER JOIN 和 JOIN 在 SQL Server 中做同样的事情。
-
查看
Rd.CAR_ID和g.GARAGE_ID列是否是其表中的主键。如果没有,每辆车可能有几条道路或每辆车有几个车库 -
@rholt - 感谢您的信息 ;)
-
@Aツ 谢谢 - 是的,它们都是主键!
-
嗯? Road.Car_ID 是主键吗?
标签: sql sql-server