我有一个带有房子id的桌子'house',带有房间id的桌子'room',以及这两个桌子的关系表
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
我在编写一个查询时遇到问题,该查询通过某些组合条件返回一个house id的数组:
例如:所有房屋的厨房大小在350到450之间,浴室大小在450到550之间 - > result应该是一个包含house2的数组 谁知道我应该怎么写这个查询?答案 0 :(得分: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