Ребята, хелп, копаюсь больше 3 часов в яндексе и гугле, так и ничего не нашел.
у меня есть таблица такого restaurants_category формата:
id | cat_id | restaurant_id
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 2
5 | 3 | 1
6 | 4 | 2
7 | 4 | 3
Мне нужно составить SQL запрос, который выбрал бы restaurant_id, который(-е) принадлежал(-и) сразу нескольким cat_id.
Например, я хочу выбрать restaurant_id, которые принадлежат сразу и cat_id = 1, и cat_id = 2, тогда restaurant_id будет равен 2. Если мне нужно выбрать restaurant_id, который принадлежит сразу и cat_id = 1, и cat_id = 2, и cat_id = 4, то restaurant_id также будет равен 2.
У меня есть вариант sql запроса:
SELECT
"A".restaurant_id
FROM
restaurants_category AS "A"
INNER JOIN
restaurants_category AS "B"
ON
("A".restaurant_id = "B".restaurant_id AND
"A".cat_id = 1 AND
"B".cat_id = 2);
Но это только для двух категорий, а для выборки из 3х категорий придется добавлять еще 1 JOIN и так далее. Есть еще вариант
SELECT cat_id restaurant_id FROM restaurants_category WHERE cat_id = 1 AND cat_id = 2
А дальше перебирать и сортировать все с помощью PHP. В общем, очень надеюсь на вашу помощь!