Как выполнить запрос объединив две таблицы в Laravel 9?

Для объединения двух таблиц в Laravel 9 вы можете использовать метод join() или метод leftJoin() билдера запросов Eloquent.

Метод join() позволяет объединять таблицы, основываясь на условии совпадения значений в колонках. Структура метода join() выглядит следующим образом:

$query->join($table, $first, $operator, $second, $type);

Где:
- $table - имя объединяемой таблицы;
- $first - колонка текущей таблицы для сравнения;
- $operator - оператор условия сравнения;
- $second - колонка объединяемой таблицы для сравнения;
- $type (опционально) - тип объединения (inner, left, right).

Пример использования метода join() для объединения таблиц:

$users = DB::table('users')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.*', 'orders.order_date')
            ->get();

В этом примере мы объединяем таблицы "users" и "orders" по колонке "id" из таблицы "users" и колонке "user_id" из таблицы "orders". Мы также выбираем все колонки из таблицы "users" и колонку "order_date" из таблицы "orders".

Метод leftJoin() работает похожим образом, но объединяет таблицы с использованием outer-join. Пример использования метода leftJoin() для объединения таблиц:

$users = DB::table('users')
            ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
            ->select('users.*', 'posts.title')
            ->get();

В этом примере мы объединяем таблицы "users" и "posts" по колонке "id" из таблицы "users" и колонке "user_id" из таблицы "posts". Мы также выбираем все колонки из таблицы "users" и колонку "title" из таблицы "posts".

Объединение таблиц в Laravel 9 с помощью методов join() и leftJoin() является мощным и удобным способом объединить данные из разных таблиц в один запрос.