我有一个表items_in_room
,该表链接哪个项目位于哪个房间(列为room_id
和item_id
)。有没有办法从列表中选择包含所有项目的所有房间?
我知道选择包含ID为x的一项的房间为:
select room_id
from items_in_room
where item_id = x
例如,如果我们需要包含ID为x,y,z的项目的房间,是否可以编写选择查询?
答案 0 :(得分:0)
如果有列表,则可以执行以下操作:
select room_id
from items_in_room
where item_id in ( . . . ) -- list of items here
group by room_id
having count(*) = <n>; -- number of items in list
这假设items_in_room
没有重复项。如果是这样,请对count(distinct)
子句使用having
:
having count(distinct item_id) = <n>
答案 1 :(得分:0)
只需将in
运算符用作
select room_id
from items_in_room
where item_id in (x,y,z)