MySQL — выборка из таблицы многие ко многим
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 = КОЛЛИЧЕСТВО_ТОГО_ЧТО_ХОТИИТЕ

если надо 'молоко', 'мясо' и 'чай'

то
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

просто вложенные запросы в мускуле очень большое зло.
select mt.mt_mag_id from mag_tov mt
 where mt.mt_tov_id in (select tov_id from tovs where tov_name in ('молоко', 'мясо' и 'чай'))