Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Как составить SQL запрос с промежуточной выборкой

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 16 Ноябрь 2010 - 12:18

Всем привет!
Подскажите как составить запрос SQL на выборку записей с такой вот сортировкой по площади - http://nfsoft.biz/in...hp?cat=1&page=1

С остальными параметрами понятно как выборку указать в запросе, а вот с площадью проблемы, не знаю как формировать запрос.

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 16 Ноябрь 2010 - 12:26

имхо они тупанули поставив чекбокс()ты видел чтоб их форма работала?), а вообще попробуй использовть логические операторы по принципу WHERE area<100 OR area>=150
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 16 Ноябрь 2010 - 12:36

Ага! спасибо! вот нашел еще по ссылке - http://www.firststeps.ru/sql/r.php?6

Оператор BETWEEN похож на оператор IN. В отличие от списка допустимых значений BETWEEN определяет диапазон значений. В запросе Вы должны указать слово BETWEEN затем начальное значение, ключевое слово AND и конечное значение. Первое значение должно быть меньше второго. Следующий запрос выберет Агентов с комиссионными между 10 и 12:
SELECT *
FROM Salespeople
WHERE comm BETWEEN 10 AND 12
SNUM SNAME CITY COMM
----- -------- ---------- -----
1001 Иванов Москва 12.0
1003 Егоров Караганда 10.0
1004 Сидоров Сочи 11.0

  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Ноябрь 2010 - 23:07

Вячеслав, правильно BETWEEN [от], [до], а дальше если нужно несколько то через ИЛИ - OR
  • 0

#5 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 18 Ноябрь 2010 - 03:43

WHERE area<100 OR area>=150 - это же выберет просто любую запись без условия. Если первое не подойдет, то второе точно подойдет.
Здесь именно надо использовать Between или поставить Вместо OR - AND.
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 18 Ноябрь 2010 - 10:58

gaaarfild, Ты не совсем прав, при таком условии: area<100 OR area>=150, отберутся все записи кроме area со 100 и до 149.
Вот простые условия:
Выбран чекбокс "<100"
SELECT * FROM table WHERE area BETWEEN 0, 100

Выбраны чекбоксы "150-200" и "250-300"
SELECT * FROM table WHERE area BETWEEN 150, 200 AND area BETWEEN 250, 300


Выбраны чекбоксы "<100" и ">300"
SELECT * FROM table WHERE area BETWEEN 0, 100 AND area > 300

или
SELECT * FROM table WHERE area < 100 AND area > 300

т.е. крайние условия лучше всего обозначить через меньше и больше, а остальные битвином
  • 0


Оформление форума – IPBSkins.ru