Напишите сложный sql в laravel, используя построитель базы данных или красноречивыйPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Напишите сложный sql в laravel, используя построитель базы данных или красноречивый

Сообщение Anonymous »

Как мне написать этот sql на laravel, используя построитель баз данных или eloquent?

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»