Unerwartete Datenbankausgabe bei Verwendung von INNER JOIN

Ich habe die folgende SQL-Abfrage

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)     

Aber ich denke, dass damit etwas nicht stimmt.

Zum Beispiel:

Wenn ich sagethree in demRAUMKLASSE_ID Textfeld im Browser und meine Methode aufrufen, es wird nur ein Raum zurückgegeben. Aber es gibt sechs Räume mit diesem Ausweis. Das seltsame ist, dass wenn ich die beiden entferneINNER JOIN und die zweite Zeile von mirSELECT, so was:

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)

es werden die sechs zimmer zurückgegeben, was richtig ist. Ich weiß nicht, wo das Problem bei meiner Abfrage liegt. Vielleicht kann mir jemand dabei helfen?

Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage