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