@DuD

Как реализовать поиск по many to many через таблицу связи в YII в стандартном методе search?

Вопрос в продолжение существующего: MySQL — выборка из таблицы многие ко многим

Есть таблица с названиями магазинов `mags`:
`mag_id`, `mag_name`

таблица с товарами, которые там продаются`tovs`:
`tov_id`, `tov_name`

и связующая таблица `mag_tov`:
`mt_mag_id`, `mt_tov_id`

Предположим, есть товары 'молоко', 'колбаса', 'мясо', 'сыр', 'водка', 'чай', 'кофе', 'соль'. В каждом магазине одновременно продаются несколько разных товаров.


nmike дал ответ:
SELECT mags.*, COUNT(*) AS c FROM mag_tov, tovs, mags WHERE mt_tov_id = tov_id AND mt_mag_id = mag_id AND tov_name IN ('молоко', 'мясо' и 'чай') GROUP BY mag_id HAVING c = 3


У меня ситуация похожая, только сущности иные. Собственно, вопрос состоит в следующем. Как перевести этот запрос на язык AR YII?

Суть в том, что я хочу добавить это к методу search в модели.
Там уже есть стандартные $criteria->compare(......) по полям. Как бы к ним в дополнение сделать такой запрос?
  • Вопрос задан
  • 2933 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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