laravel - Laravel 5 使用 2 个数据库连接加入 2 个表
问题描述
如何加入位于 2 个不同服务器上的 2 个表。
我设置数据库配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
'options' => [
\PDO::ATTR_EMULATE_PREPARES => true
]
],
'mysql2' => [
'driver' => 'mysql',
'host' => '132.133.22.9',
'port' => '3306',
'database' => 'contracts',
'username' => 'asdsdsa',
'password' => 'asdsad',
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
'options' => [
\PDO::ATTR_EMULATE_PREPARES => true
]
],
我只能访问一个像DB::connection('mysql')->table('elements')->get();
如何将 leftJoin 用于两个不同服务器上的两个表?
假设我有:
元素(server1): id,class_id
类 (server2) id、名称
解决方案
您可以使用
数据库一(测试)包括元素表和数据库二(测试2)包括类表。
$result= DB::table('elements')
->leftjoin('test2.classes', 'elements.class_id', '=', 'classes.id')
->get();
dd($result);
你真的不需要指定第一个数据库连接。默认情况下。
推荐阅读
- ruby-on-rails - 使用 Ruby on Rails 使用 GraphQL 下划线
- java - 如何获取json对象到数组到对象下的对象从数组中获取对象
- amazon-web-services - DynamoDB 过滤:使用过滤器表达式扫描列表类型中的单个条目
- matlab - 为隐式 Runge-Kutta 方法编写函数(四阶)
- machine-learning - 模型精度非常低。怎么提高
- excel - 破译excel公式
- amazon-web-services - Elastic Beanstalk 504 网关错误
- python - 如何在 keras 中获得输出 K.sqrt()?
- php - 多次左加入同一张表
- django - 用户匹配查询不存在:Django