Потому, что в таблице Tours один отель может фигурировать более одного раза, в зависимости от дат тура(fromDate И toDate). Если у вас цена фиксированная для любых дат, то джойните не таблицу Tours а такое:
...
inner join (select distinct hotelId,price from Tours)
Если же цена может быть разной в зависимости от дат, то произошедшее "дублирование" логически правильно. просто добавьте вывод дат из таблицы Tours в ваш запрос и увидите