在我执行了下面的查询之后,Laravel显示了一个错误,说enterpriseDB。Employee_detail不存在。enadopodDB和enterpriseDB是两个不同的数据库。
$query = DB::connection('enadopodDB','enterpriseDB')
->table('affected_employee')
->join('enterpriseDB.employee_detail', 'enterpriseDB.employee_detail.employee_detail_id', '=', 'affected_employee.employee_id')
->select('affected_employee.*', 'enterpriseDB.employee_detail.full_name')
->get();
var_dump($query);
如果查询生成器是错误的,请提出解决方案。
需要为所有表定义数据库名称。如果两个数据库在同一连接上,并且设置为默认,则可以尝试这种方法。
$query = DB::table('database1.table1 as dt1')->leftjoin('database2.table2 as dt2', 'dt2.ID', '=', 'dt1.ID');
$output = $query->select(['dt1.*','dt2.*'])->get();
我已经在我的本地主机上试过了。