Добрый день, уважаемые! У меня есть некоторый опыт в php, mysql, недавно занялся изучением Yii2. Сейчас делаю программу под себя. Столкнулся с некоторой сложностью... К примеру, у меня есть 2 таблицы, которые по всей видимостью нужно связать между собой. Для чего это делаю... Есть таблица, например TOVARS и есть таблица HARAKTERISTIKS. В первой таблицы содержатся товары - их наименования, количества, артикулы и прочее... Во второй таблице будут содеражатся характеристики этих товаров. А связаны они должны по ID. Теперь. Для того, чтобы мне выводить товары с их характеристиками, названиями, количествами и т.д., мне нужно будет иметь какую-то между ними связь. Связывать их, как я понимаю, нужно в MySQL путем Индексов. Далее. Какой мне теперь запрос необходимо выполнять (на Yii2), для того чтобы например на странице товара выводилось это всё вместе? А ТАК ЖЕ при ПОИСКЕ выполнялся поиск по двум таблицам и связывался результат между собой по ID (таблицы 1+ таблица 2). Пробовал гуглить, там много информации, каждый со своими примерами, в голове у меня не укладывается, а вопрос можно сказать требует достаточно быстрого решения, во времени ограничен. Надеюсь на помощь)
ФИГНЯС В данном случае можно выбрать список характеристик отдельным запросом по id товара. При этом характеристики отдельного товара можно группировать в одну запись результ. выборки при помощи агрегатной ф-ции GROUP_CONCAT. Либо сортировать характеристики по id товара, если выбираются характеристики более чем для одного товара (для списка, а не для карточки).
@gbushmakin yii тут не причем, вам нужно знать sql запросы. Но вот все же на yii для примера запрос в модели: PHP: <?php namespace app\models; use Yii; use yii\db\ActiveRecord; use yii\db\Query; class ModelView extends ActiveRecord{ public function getTable1(){ $query = new Query; $query->select('TV.tv_id , HR.hr_id'); $query->from('TOVARS as TW'); $query->leftjoin('HARAKTERISTIKS as HR', 'HR.tv_id = TV.tv_id'); return $query->all(); } }
@gbushmakin, так опиши, какой это тип связи для начала. А потом уже запросики можно будет делать. Все вопросы, которые ты поставил, решаются именно средствами БД. Архитектуру твою я не понял. У тебя там EAV, или каждый раз имя характеристики по новой, или что?
@Artur_hopf, ты вообще в курсе, как работает/в каких случаях применяется LEFT JOIN? --- Добавлено --- Я так понял.