Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как осуществить выборку?

Сообщения:  [1-10]   [11-17] 

 
 автор: yura_040   (10.06.2009 в 14:16)   письмо автору
 
   для: 345345   (10.06.2009 в 14:03)
 

На названия таблиц не обращайте внимания это запрос реальный ))

Вот этот запрос работает))


SELECT apartments.*, apartments_available_facilities.* 
FROM apartments, apartments_available_facilities
WHERE apartments.id=apartments_available_facilities.id_apartments
AND apartments_available_facilities.id_facilities IN(9, 10, 23)




В том запросе ошибся, что-то не подумал ))

  Ответить  
 
 автор: 345345   (10.06.2009 в 14:03)
 
   для: yura_040   (10.06.2009 в 13:38)
 

yura_040, чтобы id_facilities был равен 44 И 32 И 20 одновременно?

  Ответить  
 
 автор: Valick   (10.06.2009 в 13:55)   письмо автору
 
   для: yura_040   (10.06.2009 в 13:38)
 

не работает такой запрос

  Ответить  
 
 автор: yura_040   (10.06.2009 в 13:38)   письмо автору
 
   для: ronin80   (10.06.2009 в 08:28)
 

Да, скорее всего так и придется делать, создавать промежуточную таблицу availiable_facilities и хранить по одному ключу id_object и id_facilities.

Если я не ошибаюсь запрос будет таким и проблем не должно будет возникнуть

SELECT objects.*, availiable_facilities.* 
FROM objects, availiable_facilities
WHERE objects.id=availiable_facilities.id_ojects
AND availiable_facilities.id_facilities='44' 
AND availiable_facilities.id_facilities='32'
AND availiable_facilities.id_facilities='20'


Спасибо всем за помощь ))

  Ответить  
 
 автор: Valick   (10.06.2009 в 09:26)   письмо автору
 
   для: ronin80   (10.06.2009 в 08:28)
 

угу.. только что-то я предложить предложил, а выборку сделать не могу)
может сделать временную таблицу со столбцами выбираемых удобств? Опять как-то загонно....

  Ответить  
 
 автор: ronin80   (10.06.2009 в 08:28)   письмо автору
 
   для: yura_040   (09.06.2009 в 23:37)
 

да уж, я бы точно никогда так делать не стал, получается у вас в поле facilities в таблицу objects через запятую вставляются id выбраных удобств? а как же тогда выбирать наименования удобств? через конструкцию IN ? а если удобство понадобится удалить? что тогда чистить все значения столбца facilities где присутствует этот номер?

структура базы однозначно неверная, ноебходимо произвести нормализацию, как вам было предложено ранее, т.е. создать промежуточную таблицу и хранить в ней структуру Объект=>удобства со ссылками на первичные ключи справочников иначе это не последние трудности с которыми вы столкнётесь

  Ответить  
 
 автор: Valick   (10.06.2009 в 00:24)   письмо автору
 
   для: yura_040   (09.06.2009 в 23:37)
 

Это я уже понял. Я имел ввиду другие разнообразные запросы.
Я книгу по MySQL найти не могу, без неё я как без рук)))

  Ответить  
 
 автор: yura_040   (09.06.2009 в 23:37)   письмо автору
 
   для: Valick   (09.06.2009 в 17:48)
 

требования такие, чтобы найти все записи в которых будут facilities например: 43,32,3


т.е человек ставит галочки в форме и каждой галочке соответствует например: 32- горячая вода, 43-TV, 3-DVD т.е. необходимо осуществить выборку по числам 32, 43, 3 или другие числа т.е. их может быть произвольное количество + сюда может быть еще тип какой-нибудь добавлен


SELECT * FROM objects WHERE MATCH(facilities) AGAINST ('32*' IN BOOLEAN MODE) AND 
MATCH(facilities) AGAINST ('43*' IN BOOLEAN MODE) AND MATCH(facilities) AGAINST ('3*' IN BOOLEAN MODE) AND MATCH(type) AGAINST ('5*' IN BOOLEAN MODE)   ORDER BY name



fulltext в facilities и type стоит в таблице
такой запрос не хочет выводить ничего ((

  Ответить  
 
 автор: Valick   (09.06.2009 в 17:48)   письмо автору
 
   для: yura_040   (09.06.2009 в 17:43)
 

не спешите переделывать, может я ошибаюсь и Ваш вариант удобнее
я же не знаю всех остальных требований к выборке

  Ответить  
 
 автор: yura_040   (09.06.2009 в 17:43)   письмо автору
 
   для: Valick   (09.06.2009 в 17:39)
 

меня этот способ интересует можно так сделать по строке ?

т.к. база уже создана и не хочется все переделывать, а переделывать огого...

если не получиться выводить так, то придется Вашим способом делать создавать дополнительную таблицу

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования