Использование метода EloquentwhereIn в Laravel для SQL-запросов

Метод

в Eloquent ORM позволяет выполнять запросы к базе данных с помощью предложения SQL WHERE IN.

Вот пример того, как вы можете использовать метод whereinв Laravel:

$users = DB::table('users')
            ->whereIn('id', [1, 2, 3])
            ->get();

В этом примере мы запрашиваем таблицу «users» и получаем записи, в которых значение столбца «id» равно 1, 2 или 3.

Вот еще несколько примеров использования метода whereinв различных сценариях:

Пример 1. Запрос с массивом значений:

$users = DB::table('users')
            ->whereIn('role', ['admin', 'editor'])
            ->get();

В этом примере мы извлекаем пользователей, у которых в столбце «роль» указано значение «администратор» или «редактор».

Пример 2. Запрос с помощью подзапроса:

$activeSubscribers = DB::table('subscriptions')
                        ->select('user_id')
                        ->where('status', 'active');
$users = DB::table('users')
            ->whereIn('id', $activeSubscribers)
            ->get();

В этом примере мы извлекаем пользователей, значение столбца «id» которых присутствует в результате подзапроса, который извлекает активных подписчиков из таблицы «подписки».

Пример 3. Запрос к столбцу из другой таблицы:

$users = DB::table('users')
            ->whereIn('id', function ($query) {
                $query->select('user_id')
                      ->from('orders')
                      ->where('total', '>', 100);
            })
            ->get();

В этом примере мы извлекаем пользователей, значение столбца «id» которых присутствует в результате подзапроса, который извлекает значения «user_id» из таблицы «orders», где значение столбца «total» больше 100.