我正在使用 SQL Server(我相信是 2005 年)。
我有TableA
2 列和 439 行(每一行都是唯一的)。
+----------+
|ID | Name |
+----------+
我有TableB
35 列和数十万行(每行也是唯一的)。
+------------------------------------------------------------------------------+
|Date | ID | Name | Blah1 | Blah2 | ... | Hour1 | Hour2 | Hour3 | ... | Hour24 |
+------------------------------------------------------------------------------+
每一行TableB
都有每小时的观察和一些其他的家务信息。现在出于测试目的,我只对今天的日期感兴趣,即 2013 年 4 月 19 日。
如果我做:
Select count(*)
from TableB
where Date = '4/19/2013 12:00:00 AM'
我得到 10526,这是正确的,因为每天有 10526 个不同的位置有每小时的观测数据。
我想 LEFT JOIN TableA 和 TableB on a.id = b.id
,它应该产生一个有 439 行的结果。
不幸的是,结果有 246 行。怎么会这样?是不是假设无论是否有匹配都LEFT JOIN
返回所有行?TableA
TableB
*编辑*
我使用的完整查询是:
select *
from TableA as a
left join TableB as b on a.id = b.id
where RealDate = '4/20/2013 12:00:00 AM'