簡體   English   中英

SQL 服務器 - 根據“IF”條件返回多行

[英]SQL Server - Returning Multiple Rows Based on 'IF' Criteria

有更好的解釋:

我在 SQL 服務器連接表,每個實體都有多行 - 或者我的示例數據中的“House”。 我只想要那些在我要加入的表中具有花園、車道和入口大廳類型的“房屋 UID”。 如果他們有更多並不重要,但必須有 House_UID 行,其中至少有 Garden、Drive 和 Entrance hall 作為要返回的 House_UID 的“事物類型”值。

在示例數據中,這將是 1 和 3。

我試過了

Select HOUSE_UID, THING_TYPE from HOUSES

Join HOUSE_THINGS on HOUSES.HOUSE_THING = HOUSE_THINGS.THING

WHERE HOUSE_UID in (select HOUSE_UID from houses 
                    Join HOUSE_THINGS on HOUSES.HOUSE_THING = HOUSE_THINGS.THING
                   where house_thing = x)
   and HOUSE_UID in (select HOUSE_UID from houses 
                    Join HOUSE_THINGS on HOUSES.HOUSE_THING = HOUSE_THINGS.THING
                   where house_thing = y)

   and HOUSE_UID in (select HOUSE_UID from houses 
                    Join HOUSE_THINGS on HOUSES.HOUSE_THING = HOUSE_THINGS.THING
                   where house_thing = z)

但這似乎不起作用 - 我得到的結果沒有我感興趣的所有行。歡迎任何新想法!

謝謝

示例數據

使用聚合

select houseid from table_name
where house in ('Garden', 'Drive','Entrance hall')
group by houseid
having count(distinct house)>=3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM