繁体   English   中英

在bigint id上的T-SQL LEFT JOIN仅返回右表上小于101的id

[英]T-SQL LEFT JOIN on bigint id return only ids lower than 101 on right table

我在Sql Server 2008上有两个表。具有3个字段的ownership和具有其他3个字段的case ,我需要在ID字段(bigint)上同时加入这两个表。

为了进行测试,我只使用每个表中的一个字段。 此字段是bigint,值范围是1到170(目前)。

我的查询是:

SELECT DISTINCT
    ownership.fCase,
    case.id
FROM
    ownership LEFT JOIN case ON (case.id=ownership.fCase)
WHERE 
    ownership.dUser='demo' 

预期这将返回两列具有相同值的4行。 问题在于,对于fCase = 140,右表的最后一行为null。这是唯一大于100的值。

如果我运行不带WHERE子句的查询,则它将在左侧表中显示所有行,但仅在以下101处显示右侧,否则显示右侧的值。

有人可以帮我吗,我做错什么了吗?这是限制还是错误?

大小写也是动词,因此可能会造成混淆。 在[]中尝试使用表名和列名。 EG [案例]。[id] = [所有权]。[fCase]。 您是否想仔细检查[case]。[id]和[ownership]。[fCase]都是bigint。 如果您当前的值为1-170,那么为什么要选择bigint(9,223,372,036,854,775,807)? 该列是否接受空值?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM