@amorphine

Как сконструировать запрос, при котором leftJoin должен брать имя второй таблицы из ячейки первой?

Имеется сводная таблица продуктов, из которой мы выбираем значения id, table.
Подробности о продукте хранятся в таблицах, чьи названия хранятся в сводной в поле table.
Имеется задача выбрать продукты определенного бренда.

Начало видится таким
$productsQuery = \Db::table('im_depend');
//нужны продукты только со статусом ниже 3.
$brand_products=$productsQuery->where('.status', '<', 3)
                ->select('id', 'table')
      ?????????????????
                ->where('brand', '=', $brand)->get();

Теперь сама проблема - сделать объединение так, чтобы он использовал значение table, из которого будет брать название таблицы. Спасибо.
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
Сомневаюсь что вообще возможно в одном запросе использовать данные, хранимые в таблице, в качестве названия объектов БД.

Скорее всего придётся делать дополнительные запросы, в иделае - по одному на каждую таблицу товара.

А вообще такие вещи как товары, следует хранить используя EAV структуру.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Лучше сменить теги для вопроса, выложить дамп таблиц.
Проблема в том, чтобы понять какой вообще запрос нужно написать, а уж как его в Laravel оформить - дело десятое.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы