Laravel:连接两个不同数据库连接的表

时间:2019-03-20 12:28:50

标签: mysql oracle laravel-5 laravel-query-builder

是否可以联接两个具有不同数据库连接的表(两个不同服务器中的mysql和oracle) 根据条件?

我要执行此查询:

DB::connection('oracle')->table('SYSADM.PS_KS_COM_PERS_INF AS PRES')
->join(DB::connection('mysql')->table('students AS STU'), 
'PRES.NATIONAL_ID','=','STU.NationalID')
->where('PRES.STUDENT_STATUS', '=', 'Record Closed')
->where('STU.Batch', '=', $value->Batch)
->get(); // or count();

我为每个表和连接创建了模型,

但是我无法加入两个数据库连接的两个模型

1 个答案:

答案 0 :(得分:0)

  

是否可以联接两个不同数据库连接的表(两个不同服务器中的mysql和oracle)

否。

Oracle确实通过其Database Gateway for ODBC功能提供了异构访问。正确安装该功能后,您就可以运行这样的查询。

 DB::connection('oracle')->table('some_oracle_table')->join('some_mysql_table@mysqlConnection') ...

说明如何装配该功能超出了堆栈溢出答案的范围。获取您的DBA帮助。

或者,只需分别从Oracle连接和MySQL连接读取数据,并将它们与程序关联。这就是今年完成工作的方式。