2016-11-28 6 views
1

Datebase 1 = DB1 Database 2 = db2Laravel нескольких баз данных Подключение Присоединиться таблицы

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

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

Цените, что если кто-то может мне помочь, что делать.

DB1 пользователь идентификатор имя ori_id

db2 ori_user идентификатор имя

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

+0

Да, я вижу. Это где-нибудь, где можно объединить две таблицы из разных баз данных? –

ответ

0

в 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, 
     ], 

здесь клиенты является Database1 и customers2 является database2

в контроллер

$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

+0

Это просто объединение двух одинаковых таблиц базы данных, возможно, что это можно сделать из разных таблиц базы данных. –

+0

О, извините, моя ошибка, я подумал, что 2 таблицы в той же базе данных..ok, я постараюсь, если я могу предоставить u – Borna

+0

Я отредактировал мой ans – Borna

0

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

$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(); 

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

+0

ОП запрашивает две отдельные базы данных. – Ronald

+0

Да, я беспокоюсь об этом и точно ответил. Вы даже проверили мой ответ или не поняли? –

Смежные вопросы