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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как осуществить поиск ?
 
 автор: yura_040   (27.06.2009 в 18:42)   письмо автору
 
 

Есть таблица facilities в ней 3 столбца
id -первичный ключ
id_facilities - здесь храниться id- развлечения( 2,3,5)
id_apartments - id объекта (5,2,4)

В таблице содержатся данные
(id, id_facilities, id_apartments)

(1,2,5)
(2,3,5)
(3,5,5)

(5,3,2)
(6,2,2)

(7,3,4)
(8,5,4)

Необходимо вывести все id_apartments, когда осуществляется поиск по id_facilities
Например ищу по id_facilities 2, 3

Т.е. необходимо, чтобы запрос вернул 2 id-шника id_apartments -- 5 и 2


запрос такото типа тут не подходит
SELECT * FROM facilities WHERE id_facilities IN(2,3)

или как-то DISTINCT использовать...

Может кто знает, как это реализовать?

  Ответить  
 
 автор: Trianon   (27.06.2009 в 18:49)   письмо автору
 
   для: yura_040   (27.06.2009 в 18:42)
 

>(id, id_facilities, id_apartments)
>
>(1,2,5)
>(2,3,5)
>(3,5,5)
>(5,3,2)
>(6,2,2)
>(7,3,4)
>(8,5,4)
>
>Необходимо вывести все id_apartments, когда осуществляется поиск по id_facilities
>Например ищу по id_facilities 2, 3
>Т.е. необходимо, чтобы запрос вывел 2 записи, где id_apartments равно 5 и 4

а двойку почему не выводить? в пятой записи двойка.

  Ответить  
 
 автор: yura_040   (27.06.2009 в 18:50)   письмо автору
 
   для: Trianon   (27.06.2009 в 18:49)
 

да я ошибся поправил сейчас
В таблице содержатся данные
(id, id_facilities, id_apartments)

(1,2,5)
(2,3,5)
(3,5,5)

(5,3,2)
(6,2,2)

(7,3,4)
(8,5,4)

Необходимо вывести все id_apartments, когда осуществляется поиск по id_facilities
Например ищу по id_facilities 2, 3

Т.е. необходимо, чтобы запрос вернул 2 id-шника id_apartments -- 5 и 2

  Ответить  
 
 автор: Trianon   (27.06.2009 в 18:57)   письмо автору
 
   для: yura_040   (27.06.2009 в 18:50)
 

SELECT app , COUNT(app) AS cnt
  FROM tbl 
    WHERE fac IN(2,3)  
  GROUP BY app
  HAVING cnt = 2 

  Ответить  
 
 автор: yura_040   (27.06.2009 в 19:09)   письмо автору
 
   для: Trianon   (27.06.2009 в 18:57)
 

это реальный запрос

SELECT id_apartments, COUNT( id_apartments ) AS apartments
FROM apartments_available_facilities
WHERE id_facilities
IN ( 24, 23 )
GROUP BY id_apartments
HAVING apartments =2


проверил работает ))

спасибо большое ))

  Ответить  
 
 автор: Trianon   (27.06.2009 в 19:12)   письмо автору
 
   для: yura_040   (27.06.2009 в 19:09)
 

AS apartments

Вот это я бы переделал.
Иначе луч диареи со стороны ближайшего следующего девелопера, который заглянет в этот текст, Вам гарантир

  Ответить  
 
 автор: yura_040   (27.06.2009 в 19:16)   письмо автору
 
   для: Trianon   (27.06.2009 в 19:12)
 

AS apartments - да изменю конечно, чтобы не путать других ))

  Ответить  
Rambler's Top100
вверх

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