Имеется 3 таблицы: products, product_parameter, parameters.
В products есть 2 продукта, у которых есть определенные параметры, которые прописаны в таблице parameters. Таблица product_parameter является связующей.
Стоит задача отфильтровать продукты по параметрам. Сколько ни пытался, все время выводились лишние копии продуктов. Решил в очередной раз начать с нуля, написал следующий код.
$goods = DB::table('products')
->join('product_parameter as product_parameter', 'products.id', '=', 'product_parameter.product_id')
->join('parameters as parameters', 'product_parameter.parameter_id', '=', 'parameters.id')
->select('products.*')->get();
Результат следующий: выдал 6 объектов, то есть для каждого продукта по три копии! И тут я понял, что, скорее всего, все дело в связующей таблице, а точнее в неправильных связях, потому что она содержит как раз шесть связующих записей.
Собственно вопрос: что нужно исправить, чтобы записи выводились без копий, как при обычном запросе, так и при фильтрации по параметрам?
P.s.: Left join не изменил ситуацию.