gpt4 book ai didi

c# - 使用 INNER JOIN 时出现意外的数据库输出

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:58 25 4
gpt4 key购买 nike

我有以下 SQL 查询

SELECT 
r.BEZEICHNUNG AS BEZEICHNUNG, r.ID AS ID,
ra.BEZEICHNUNG AS raumBEZEICHNUNG, ra.ID AS raumID
FROM
RAUM r
INNER JOIN RAZUORDNUNG rz ON rz.RAUM_ID = r.ID
INNER JOIN RAUMATTRIBUTE ra ON rz.RAUMATTRIBUTE_ID = ra.ID

WHERE
RAUMKLASSE_ID = ISNULL(@Raumklasse_ID, RAUMKLASSE_ID)
AND STADT_ID = ISNULL(@Stadt_ID, STADT_ID)
AND GEBAEUDE_ID = ISNULL(@Gebaeude_ID, GEBAEUDE_ID)
AND REGION_ID = ISNULL(@Region_ID, REGION_ID)
AND RAUMATTRIBUTE_ID = ISNULL(@Raumattribute_ID, RAUMATTRIBUTE_ID)

但我认为这有些不对劲。

例如:

如果我将 three 放入浏览器的 RAUMKLASSE_ID 文本字段中并调用我的方法,它只会返回一个房间。但是有六个房间有那个 ID。奇怪的是,如果我删除两个 INNER JOIN 和我的 SELECT 的第二行,就像这样:

SELECT 
r.BEZEICHNUNG AS BEZEICHNUNG, r.ID AS ID
FROM
RAUM r
WHERE
RAUMKLASSE_ID = ISNULL(@Raumklasse_ID, RAUMKLASSE_ID)
AND STADT_ID = ISNULL(@Stadt_ID, STADT_ID)
AND GEBAEUDE_ID = ISNULL(@Gebaeude_ID, GEBAEUDE_ID)
AND REGION_ID = ISNULL(@Region_ID, REGION_ID)
AND RAUMATTRIBUTE_ID = ISNULL(@Raumattribute_ID, RAUMATTRIBUTE_ID)

它返回的是六个房间,这是正确的。我不知道我的查询有什么问题。也许有人可以帮我解决这个问题?

提前致谢

最佳答案

这是预期的行为,因为:

FROM RAUM r
INNER JOIN RAZUORDNUNG rz ON rz.RAUM_ID = r.ID
INNER JOIN RAUMATTRIBUTE ra ON rz.RAUMATTRIBUTE_ID = ra.ID

只会为您提供在表 RAUMRAZUORDNUNGRAUMATTRIBUTE 表中找到的房间,删除这些 INNER JOIN s 将为您提供 RAUM 表中满足您条件的所有房间,请查看这些页面以获取有关 JOINs 的更多详细信息:

关于c# - 使用 INNER JOIN 时出现意外的数据库输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114987/

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