Соединение с несколькими базами данных Laravel

База данных 1 = db1 База данных 2 = db2

У меня есть подключение к двум базам данных, я хотел запустить eloquent или БД, которые соединяют таблицу connection1 и connection 2 (db1.users и db2.users), и проверить connection1 id = connection 2 или нет.

кто-нибудь может подсказать мне, как это сделать?

Цените это, если кто-то мог бы вести меня, что делать.

имя пользователя db1 имя ori_id

имя пользователя db2 ori_user

выберите db2.ori_user.name из db1.user присоединитесь к db1.user в db1.user.ori_id = db2.ori_user.id

2 ответа

Да, это возможно, если они находятся на одном сервере, например:

$result = \DB::table('db1.users')
    ->join('db2.users', 'db2.users.id', '=', 'db1.users.id')
    ->select('db1.users.id as db1_id', 'db1.users.email as db1_email', 'db2.users.*')
    ->get();

Убедитесь, что у пользователя есть доступ / право использовать обе базы данных.

В файле database.php

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'customers'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

        'mysql2' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'customers2'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

Здесь клиенты - это база данных1, а клиенты - это база данных2

в контроллере

 $data=DB::select('select customers2.ori_user.name from customers.user join customers2.ori_user on customers.user.ori_id = customers2.ori_user.id');

или же

$data=DB::select('your_query');

Ссылка на YouTube: https://www.youtube.com/watch?v=Kgl3FzqP1Ps&feature=youtu.be

Другие вопросы по тегам