Неожиданный вывод базы данных при использовании INNER JOIN
У меня есть следующий запрос 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
текстовое поле в браузере и вызвать мой метод, он возвращает только одну комнату. Но есть шесть комнат с этим удостоверением личности. Странно то, что если я уберу два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)
он возвращает шесть комнат, и это правильно. Я не знаю, в чем проблема с моим запросом. Может быть, кто-то может помочь мне с этим?
заранее спасибо