РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
266 of 1392 menu

Метод union

Метод union применяется к запросу Query Builder и позволяет объединить результаты двух или более запросов в один набор. Первым параметром передаётся другой запрос, который нужно объединить. По умолчанию дублирующиеся строки удаляются, но можно использовать метод unionAll для сохранения всех записей.

Синтаксис

<?php use Illuminate\Support\Facades\DB; DB::table('table1')->union($query2)->get(); ?>

Пример

Давайте объединим результаты двух таблиц: users и admins:

<?php use Illuminate\Support\Facades\DB; $res = DB::table('users') ->select('name') ->union( DB::table('admins') ->select('name') ) ->get(); foreach ($res as $user) { echo $user->name . " "; } ?>

Результат выполнения кода:

"John Doe Jane Smith Admin User"

Пример

Объединим результаты с сортировкой и ограничением:

<?php use Illuminate\Support\Facades\DB; $res = DB::table('users') ->select('name', 'email') ->where('active', 1) ->union( DB::table('admins') ->select('name', 'email') ->where('active', 1) ) ->orderBy('name') ->limit(10) ->get(); foreach ($res as $user) { echo $user->name . " "; } ?>

Результат выполнения кода:

"Admin Admin John Jane"

Пример

Использование метода unionAll для сохранения дубликатов:

<?php use Illuminate\Support\Facades\DB; $res = DB::table('users') ->select('name') ->unionAll( DB::table('admins') ->select('name') ) ->get(); foreach ($res as $user) { echo $user->name . " "; } ?>

Результат выполнения кода:

"John Jane John Jane Admin Admin"

Пример

Объединение нескольких запросов:

<?php use Illuminate\Support\Facades\DB; $res = DB::table('users') ->select('id', 'name') ->where('id', '>', 1) ->union( DB::table('admins') ->select('id', 'name') ->where('id', '>', 1) ) ->union( DB::table('moderators') ->select('id', 'name') ->where('id', '>', 1) ) ->orderBy('id') ->get(); foreach ($res as $user) { echo $user->name . " "; } ?>

Результат выполнения кода:

"John Jane Moderator Admin"

Смотрите также

  • метод unionAll,
    который объединяет результаты запросов с сохранением дубликатов
  • метод get,
    который выполняет запрос и возвращает коллекцию
  • метод orderBy,
    который сортирует результаты запроса
  • метод select,
    который указывает какие колонки выбирать
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить