SELECT * FROM product WHERE product.CategoryID IN
(SELECT CategoryID FROM (SELECT CategoryID FROM category where GroupCategoryID="12" AND category.IsActive="1" ORDER BY RAND() LIMIT 10) t)
AND product.IsActive="1" ORDER BY RAND() LIMIT 3;
ОБНОВЛЕНИЕ
Есть 3 таблицы: товар, категория, группа_категория
Я хочу получить 3 случайных продукта по GroupCategoryID
Таблица продуктов содержит CategoryID, таблица категорий содержит GroupCategoryID.
У меня sql работает... но я хочу переписать свой проект на laravel, и я хочу использовать современный подход
ОБНОВЛЕНИЕ 2
... вроде работает... но не так элегантно
$result = DB::select('SELECT CategoryID FROM category where GroupCategoryID="4" AND category.IsActive="1"');
$categories = array();
foreach ($result as $r){
array_push($categories, $r->CategoryID);
}
$randProducts = DB::table('product')
->whereIn('CategoryID', $categories)
->inRandomOrder()
->limit(3)
->get();
Подробнее здесь: https://stackoverflow.com/questions/495 ... r-eloquent
Мобильная версия