Запрос многие ко многим. Поиск по нескольким параметрам

Уверен, что такой вопрос уже задавался, но я не смог найти подходящий для меня ответ. Заранее прошу прощения за возможный дубль.

Есть таблицы:

  1. works (id, name)
  2. categories (id, name)
  3. work_categories(id, work_id, category_id)

Нужно составить запрос для получения works которые состоят в категориях к примеру с id 1 И 2.

у меня получился такой вариант но я не уверен что он оптимальный:

SELECT w.*
FROM works AS w
 JOIN work_categories wc ON wc.work_id = w.id
 JOIN work_categories wc2 ON wc2.work_id = w.id
 JOIN categories c  ON c.id = wc.category_id
 JOIN categories c2 ON c2.id = wc2.category_id
WHERE c.id = 1 AND c2.id = 2
GROUP BY w.id

Ответы (0 шт):