0

我有一个带有房屋 ID 的表“房子”,一个带有房间 ID 的表“房间”,以及这两个表的关系表

HOUSE
-----
1 |   house1
2 |   house2
3 |   house3
4 |   house4
5 |   house5

ROOM
------
1 |   kitchen
2 |   bathroom
3 |   garage

HOUSE_ROOMS
------------
id | house_id | room_id  |  size 
=================================

1 | 1 | 1 | 200
2 | 1 | 2 | 300
3 | 2 | 1 | 400
4 | 2 | 2 | 500
5 | 3 | 1 | 500
6 | 4 | 2 | 600
7 | 5 | 1 | 400
8 | 5 | 5 | 300

我在编写通过某些组合条件返回房屋 ID 数组的查询时遇到问题:

示例:获取厨房大小在 350 到 450 之间以及浴室大小在 450 到 550 之间的所有房屋 -> 结果应该是包含 house2 的数组

有谁知道我应该怎么写这个查询?

4

1 回答 1

1

假设您的所有 ID 都是固定的,以下快速查询将起作用:

 SELECT HOUSE_ID
   FROM HOUSE_ROOMS
  WHERE (ROOM_ID=2 AND SIZE>=450 AND SIZE<=550)
     OR (ROOM_ID=1 AND SIZE>=350 AND SIZE<=450)
  GROUP BY HOUSE_ID
 HAVING COUNT(DISTINCT ROOM_ID)>1
于 2013-09-05T12:04:02.777 回答