nixp.ru v3.0

25 апреля 2024,
четверг,
23:09:17 MSK

Digger написал 15 февраля 2007 года в 11:18 (744 просмотра) Ведет себя как мужчина; открыл 39 тем в форуме, оставил 251 комментарий на сайте.

Стоит следующая задача(упрощаю очень сильно, но суть именно в этом):

Есть три таблицы.

1. Таблица описывающие некие сервисы, имеет уникальный serv_ID и имя serv_name.

2. Таблица описывающая услуги для конкретного сервиса, имеет usluga_ID и имя usluga_Name

3. Таблица соответствия serv2uslugi, имеет поля serv_ID и usluga_ID. Каждый сервис может иметь как угодно много услуг.

Вопрос: Как максимально проще достать из mysql базы (ver 4) перечень serv_name, для сервисов которые выполняют несколько определенных услуг.

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

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

metal

Общая идея:

select serv_name from A1 where Serv_ID in ( select serv_id from A3 group by serv_id having usluga_id=id1 and usluga_id=id2 and … );

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.