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

Метод join

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

Синтаксис

<?php DB::table($table)->join($joinTable, $firstColumn, $operator, $secondColumn); ?>

Пример

Давайте выполним объединение таблиц 'users' и 'posts' по колонке '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 $row) { echo $row->name . ' - ' . $row->title . "\n"; } ?>

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

"John Doe - First post" "John Doe - Second post" "Jane Smith - 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.active', '=', 1); }) ->select('orders.id', 'customers.name') ->get(); foreach ($res as $row) { echo "Order {$row->id} - {$row->name}\n"; } ?>

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

"Order 1 - Active customer" "Order 3 - Active customer"

Пример

Давайте выполним множественное объединение трёх таблиц:

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

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

"John Doe: First post - Great article" "John Doe: First post - Thanks for sharing" "John Doe: Second post - I like this" "Jane Smith: Third post - Very useful"

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

  • метод leftJoin,
    который выполняет левое внешнее объединение
  • метод rightJoin,
    который выполняет правое внешнее объединение
  • метод select,
    который определяет выбираемые колонки
  • метод table,
    который начинает построение запроса к таблице
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить