使用INNERJOIN时出现意外的数据库输出ASraumID来自RAUMrINNERJOINRAZUORDNUNGrzONrz.RAUM_ID=r.IDINNERJOINRAUMATTRIBUTEraONrz.RAUMATTRIBUTE_ID=ra.IDWHERERAUMKLASSE_ID=ISNULL(@Raumklasse_ID,RAUMKLASSE_T_ID,AND=IStULDtLASSE_ID)ID(AND=STADT_EUISNULL(@Gebaeude_ID,GEBAEUDE_ID)ANDREGION_ID=ISNULL(@Region_ID,REGION_ID)ANDRAUMATTRIBUTE_ID=ISNULL(@Raumattribute_ID,RAUMATTRIBUTE_ID)但是我觉得有些不对劲。例如:如果我在浏览器的RAUMKLASSE_ID文本字段中输入三个并调用我的方法,它只返回一个房间。但是有六个房间有这个ID。奇怪的是,如果我像这样删除两个INNERJOIN和我的SELECT的第二行:SELECTr.BEZEICHNUNGASBEZEICHNUNG,r.IDASIDFROMRAUMrWHERERAUMKLASSE_ID=ISNULL(@Raumklasse_ID,RAUMKLASSE_ID)ANDSTADT_ID=ISNULL(@Stadt_ID,STADT_ID)ANDGEBAEUDE_ID=ISNULL(@Gebaeude_ID,GEBAEUDE_ID)ANDREGION_ID=ISNULL(@Region_ID,REGION_ID)ANDRAUMATTRIBUTE_ID=ISNULL(@Raumattribute_ID,RAUMATTRIBUTE_ID正确返回六个房间)的。我不知道我的查询有什么问题。也许有人可以帮助我?提前致谢这是预期的行为,因为:FROMRAUMrINNERJOINRAZUORDNUNGrzONrz.RAUM_ID=r.IDINNERJOINRAUMATTRIBUTEraONrz.RAUMATTRIBUTE_ID=ra.ID仅从表RAUM、RAZUORDNUNG和RAUMATTRIBUTE表中获取房间,删除这些INNERJOIN将从RAUM表中获取所有符合条件的房间,有关JOIN的更多详细信息,请参阅这些页面:INNERJOIN不会返回没有相应RAZUORDNUNG或RAUMATTRIBUTE的RAUM条目。您可能需要一个LEFTJOIN;在这种情况下,返回的集合中的raumBEZEICHNUNG和raumID可能为空。以上就是C#学习教程:UnexpecteddatabaseoutputwhenusingINNERJOIN分享的所有内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如有侵权,请点击右边联系管理员删除。如需转载请注明出处:
