@darknet37

Как сделать двойной запрос к БД?

У меня есть две таблицы: в одной категории, а в другой товары.
Как мне вывести товары относящиеся к нужной категории?
fe385146e0d440f287fc9b49d10e2e68.png
fb5414a0bcce461186a563835ed2fa45.png
Если бы ссылки были вида: site.ru/category/id/3 - то с этим все понятно, я бы получал GET параметр, т.к. он есть в таблице product.
А как быть в случаи с: site.ru/postelnoe-bele-gost ?
Я запутался, подскажите. За ранее благодарю.
  • Вопрос задан
  • 703 просмотра
Решения вопроса 1
$sql = "SELECT * FROM `product_table` WHERE `category_id` IN (SELECT `id` FROM `category_table` WHERE `alias`={$alias})";
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
используйте стандартный механизм реляций
Ответ написан
Комментировать
dskripchenko
@dskripchenko
backend developer (Promo Interactive)
$sql = <<<SQLSTR
SELECT `pt`.* FROM `product_table` AS `pt` 
INNER JOIN `category_table` AS `ct` ON `ct`.`category_id` = `pt`.`category_id`
WHERE `ct`.`alias` = :alias
SQLSTR;
$resultArray = Yii::$app->db->createCommand($sql)->bindValues([':alias'=>$alias])->queryAll();
$resultProductList = Product::findBySql($sql,[':alias' => $alias])->all();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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