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

Метод join

Метод join применяется к запросу Query Builder и позволяет объединить основную таблицу с дополнительной по указанному условию. Первым параметром передаётся имя таблицы для объединения, вторым - первая колонка, третьим - оператор сравнения, четвёртым - вторая колонка. Если оператор не указан, используется равенство.

Синтаксис

<?php DB::table($table) ->join($table2, $column1, $operator, $column2) ->select(...) ->get(); ?>

Пример

Объединим таблицу пользователей с таблицей постов по полю 'user_id':

<?php use Illuminate\Support\Facades\DB; $res = DB::table('users') ->join('posts', 'users.id', '=', 'posts.user_id') ->select('users.name', 'posts.title') ->get(); foreach ($res as $item) { echo $item->name . ' - ' . $item->title . "\n"; } ?>

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

"John - First post" "John - Second post" "Jane - Third post"

Пример

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

<?php use Illuminate\Support\Facades\DB; $res = DB::table('orders') ->join('customers', function ($join) { $join->on('orders.customer_id', '=', 'customers.id') ->where('customers.status', '=', 'active'); }) ->select('orders.id', 'customers.name') ->get(); foreach ($res as $item) { echo $item->id . ' - ' . $item->name . "\n"; } ?>

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

"1 - Alice" "3 - Bob" "5 - Charlie"

Пример

Используем левое объединение с помощью метода leftJoin:

<?php use Illuminate\Support\Facades\DB; $res = DB::table('products') ->leftJoin('categories', 'products.category_id', '=', 'categories.id') ->select('products.name', 'categories.title') ->get(); foreach ($res as $item) { echo $item->name . ' - ' . ($item->title ?? 'null') . "\n"; } ?>

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

"Laptop - Electronics" "Phone - Electronics" "Chair - Furniture" "Tablet - null"

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

  • метод join для коллекций,
    который объединяет элементы в строку
  • метод join для массивов,
    который объединяет элементы массива в строку
  • функция collect,
    которая создаёт коллекцию из массива
  • метод where,
    который фильтрует коллекцию по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить