Как получить строку из MySQL по нужным данным, находящихся в разным таблицах?
Всем доброй ночи, сижу потею уже какой час, голова никак не варит. Попытаюсь объяснить проблему:
есть таблицы:
clothes
clothes_styles
clothes_ranges
styles
ranges
И еще куча подобных таблиц.
В таблице clothes - хранится одежда, в таблице clothes_styles идет привязка одежды к стилям, т.е поля clothes_id и styles_id и в таблице styles - сами стили. Но беда в том, что в таблице clothes_styles может быть несколько строк с одинаковым значение clothes_id, но разными значениями styles_id И в базе еще присутствует куча таких таблиц по аналогии с этими. В чем сама соль, нужно вывести строки из таблицы clothes, у которых, например есть стиль id 1,2 и еще куча таких же параметров по аналогии с этими.
Наведите в какую сторону смотреть. Пишу на Laravel, пробовал через belongsToMany и where , но он ищет не уже в сформированном массиве, а в базе. Можно получить массив всех clothes вместе с styles,ranges и т.п через with, но как в нем искать - без понятия. Надеюсь суть проблемы разъяснил. Заранее благодарен за любую помощь.
но в whereIn('id', $styles_array) - нужно передать массив, делаю внутри функции переменную $styles_array глобальное, все равно область видимости не срабатывает.
Это ужасное решение. Работать с моделью в обход ORM очень плохая идея к которой прибегать только в крайнем случае, когда проблемы с производительностью.