Стоит следующая задача(упрощаю очень сильно, но суть именно в этом):
Есть три таблицы.
1. Таблица описывающие некие сервисы, имеет уникальный serv_ID и имя serv_name.
2. Таблица описывающая услуги для конкретного сервиса, имеет usluga_ID и имя usluga_Name
3. Таблица соответствия serv2uslugi, имеет поля serv_ID и usluga_ID. Каждый сервис может иметь как угодно много услуг.
Вопрос: Как максимально проще достать из mysql базы (ver 4) перечень serv_name, для сервисов которые выполняют несколько определенных услуг.
К примеру, задаем пять услуг. Запрос должен достать сервисы у которых все пять услуг возможны.
Пока кроме как доставать иды сервисов по отдельности, а потом убирать ненужные я ничего не придумал. Запрос получается пухлым (при учете того что севисов в базе дофига, и перечисление их идов очень утяжеляет запрос).
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Общая идея:
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 … );