Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.12.2017 21:22:54

Объединение SQL(Конструктор) запросов.

Версия Laravel: 5.2
Версия PHP: 5.6.32
Вендор и версия сервера БД: MySQL ver. 5.5.56-MariaDB
Добрый день. Подскажите, пытаюсь сделать быструю (рандомную) выборку из базы и нужно соединять запросы. Возник вопрос, могу ли я соединить запросы и отправить запросы без начального. В конструкторе есть union(), но для него нужен "начальный" запрос.

$param = User::where('musical_direction', '!=', 0)->select(DB::raw('musical_direction, COUNT(users.id) as count'))->groupBy('musical_direction')->get();
        foreach ($param as $item){
                $offset = rand(0, $item->count-1);
                if (isset($query)) {
                    $new_query = User::where('musical_direction', 1)->offset($offset)->limit(1)->select('name');
                    $query = $query->unionAll($new_query);
                } else {
                    $query = $query2 = User::where('musical_direction', 1)->offset($offset)->limit(1)->select('name');
                }
        }
$result = $query->get();

Вот здесь, с помощью ifelse делаю "начальный запрос". Но может быть можно по-другому, без этого?

Не в сети

Подвал раздела