Как составить sql запрос, выборка из нескольких строк?

Здравствуйте!

Помогите решить задачку. Есть таблица, в которой содержится id мастера (user_id) и ID услуги которые у него есть (serv_id) :

mserv
id int(10)
user_id smallint(6)
serv_id smallint(6)

У одного мастера может быть несколько услуг, т.е. записи будут вида:

1516 59 3
1517 59 7
1518 59 8
1519 59 10
1520 59 14
1521 59 15
1522 59 16
1523 59 26
1524 59 27
1525 59 28
1526 59 30
1527 59 43
1528 59 46
10057 304 3
10058 304 4
10059 304 6
10060 304 7
10061 304 8
10062 304 10

Пробую организовать поиск по услугам, т.е. пользователь выбирает несколько услуг, далее нужно как то найти мастера который выполняет все выбранные услуги... простой запрос вида select * from mserv where serv_id =10 and serv_id=20 and serv_id=50 ничего не выведет....

Кто-нибудь поможет?
  • Вопрос задан
  • 3271 просмотр
Решения вопроса 1
@myLizzarD
PHP developer
SELECT user_id, COUNT(serv_id) as serv_count FROM 'mserv' WHERE serv_id IN (...) GROUP BY user_id HAVING serv_count = кол-ву переданных id.

Если используется php, например, то до запроса считаете кол-во нужных сервисов и подставляете все в запрос
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
KorsaR-ZN
@KorsaR-ZN
SELECT * FROM mserv WHERE serv_id IN(10,20,50)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы