[Laravel 6]
Я пытаюсь объединить 2 таблицы из разных серверных баз данных.
Вот конфигурация базы данных:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'db1'),
'username' => env('DB_USERNAME', 'table1'),
'password' => env('DB_PASSWORD', 'password'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'external' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('EXTERNAL_HOST', '123.456.789.2'),
'port' => env('EXTERNAL_PORT', '3306'),
'database' => env('EXTERNAL_DATABASE', 'db2'),
'username' => env('EXTERNAL_USERNAME', 'table2'),
'password' => env('EXTERNAL_PASSWORD', 'password'),
'unix_socket' => env('EXTERNAL_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Вот query:
return $query->join('db2.table2', function($join) {
$join->on('table1.gateway', '=', 'db2.table2.gateway');
$join->on('table1.prefixlen', '=', 'db2.table2.prefixlen');
$join->on('table1.vlan', '=', 'db2.table2.vlan');
})->select('table1.*');
Но я получил это сообщение об ошибке:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db2.table2' doesn't exist (SQL: select count(*) as aggregate from table1 inner join db2.table2 on table1.gateway = db2.table2.gateway and table1.prefixlen = db2.table2.prefixlen and table1.vlan = db2.table2.vlan)
Я пытался поискать в Google в последние пару дней, но я не мог найти правильный способ сделайте это.
Любые подсказки будут очень признательны.