gpt4 book ai didi

SQL Server : left join results in fewer rows than in left table

转载 作者:行者123 更新时间:2023-12-02 07:23:58 24 4
gpt4 key购买 nike

我正在使用 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'

最佳答案

试试这个:

select * from TableA as a
left join (SELECT * from TableB where RealDate = '4/20/2013 12:00:00 AM') as b
on a.id = b.id

或者这个:

select * from TableA as a
left join TableB as b on (a.id = b.id AND RealDate = '4/20/2013 12:00:00 AM')

关于SQL Server : left join results in fewer rows than in left table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com