[英]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.