从条件中获取表格

时间:2014-04-06 10:35:12

标签: mysql

我有两张桌子酒店和company_hotels。酒店表由Id,Hotel_Name,Destination_Id和company_hotels组成,包括Id,Company_Id,Hotel_Id。我想和Destination_Id = 10

在公司ID 1和2搜索相同的酒店

酒店表

1 hotel 1 10
2 hotel 2 11
3 hotel 3 10

公司酒店

1 1 1
2 1 3
3 2 1

对于上面的例子我需要结果hotel 1作为结果

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题

select h.Id,h.Hotel_Name
from hotel h
inner join  company_hotels ch on ch.Hotel_Id = h.Id
where 
ch.Company_Id IN (1,2)
AND h.Destination_Id = 10

更新1

从更新后的评论中,查询应返回包含公司ID 1和2的酒店,而不是所有酒店都有1或2

select h.Id,h.Hotel_Name
from hotels h
inner join  company_hotels ch on ch.Hotel_Id = h.Id
where 
ch.Company_Id IN (1,2)
AND h.Destination_Id = 10
group by h.Id
having count(h.Id) = 2

http://sqlfiddle.com/#!2/9025d/3

答案 1 :(得分:0)

加入hotel_id

Select * from company_hotels inner join hotel
on hotel.id=company_hotels.hotel_id 
where company_hotel.company_id in (1,2) 
and hotel.destination_id=10