0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 1532 Просмотров
*

ershovdz

  • Захожу иногда
  • 102
  • 21 / 0
SQL запрос
« : 29.06.2009, 14:11:35 »
Всем доброго времени суток. Появился такой вопрос.
Есть две таблицы.
В первой таблице хранится список гостиниц (поля: id гостиницы и куча других параметров)

Во второй таблице хранится список цен для номеров (комнат) в гостиницах.
Таблица имеет следующие поля:
id - цены | id - гостиницы | цена за день | период времени в который данная цена действует | тип комнаты |

Внимание вопрос: хочется сделать запрос и получить все гостиницы (т.е. из первой таблицы) у которых в заданный промежуток времени есть комнаты в заданном промежутке цен.
Т.е. юзер, например, ищет гостиницу в которой с 01.01.01 по 01.02.01 есть номера с ценой от 100$ до 200$.

Как составить такой SQL запрос ?
« Последнее редактирование: 29.06.2009, 14:20:57 от ershovdz »
*

beliyadm

  • Легенда
  • 9629
  • 1658 / 66
  • Севастополь == Россия
Re: SQL запрос
« Ответ #1 : 29.06.2009, 14:35:05 »
Код: sql
SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t2.gostinica_id = t1.id
WHERE  t2.date > '01.01.01' AND t2.date < '05.01.01' AND t2.price > 100 AND t2.price < 200
как то так, либо использовать BETWEEN вместо сравнений
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

ershovdz

  • Захожу иногда
  • 102
  • 21 / 0
Re: SQL запрос
« Ответ #2 : 29.06.2009, 14:52:49 »
Я так пробовал - не работает. В том смысле, что если в списке цен есть несколько подходящих номеров для одной гостиницы, то в результате запроса эта гостиница будет фигурировать столько раз, сколько было подходящих вхождений во второй таблице..
*

beliyadm

  • Легенда
  • 9629
  • 1658 / 66
  • Севастополь == Россия
Re: SQL запрос
« Ответ #3 : 29.06.2009, 14:55:29 »
Я так пробовал - не работает. В том смысле, что если в списке цен есть несколько подходящих номеров для одной гостиницы, то в результате запроса эта гостиница будет фигурировать столько раз, сколько было подходящих вхождений во второй таблице..
да, а тебе как надо - что если в одной гостинице найдено несколько подходящих номеров, то она должна просто показаться один раз в результатах?
Используй группировку GROUP BY по нужному полю второй таблицы
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

ershovdz

  • Захожу иногда
  • 102
  • 21 / 0
Re: SQL запрос
« Ответ #4 : 29.06.2009, 15:33:42 »
Заработало - спасибо :D Только группировать нужно по полю из первой таблицы  
*

beliyadm

  • Легенда
  • 9629
  • 1658 / 66
  • Севастополь == Россия
Re: SQL запрос
« Ответ #5 : 29.06.2009, 15:34:34 »
Только группировать нужно по полю из первой таблицы   
верно, извини ступил :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как через AJAX запрос получить только данные из функции, без HTML кода?

Автор lottis

Ответов: 7
Просмотров: 3027
Последний ответ 26.03.2012, 02:40:54
от lottis
SELECT запрос с поиском среди параметров в стиле ini-файлов (поля params или attribs)

Автор enshtein

Ответов: 1
Просмотров: 1437
Последний ответ 14.02.2010, 12:20:54
от enshtein
Запрос (SQL) в БД user status online

Автор selimoff

Ответов: 7
Просмотров: 2872
Последний ответ 17.06.2009, 14:35:40
от beliyadm