Php Laravel 5.3上不同数据库中的雄辩连接和查询

Php Laravel 5.3上不同数据库中的雄辩连接和查询,php,mysql,database,laravel,eloquent,Php,Mysql,Database,Laravel,Eloquent,如何在Laravel中从两个不同的数据库运行这个简单的Mysql查询 SELECT * FROM database1.table1, database2.table2 以及我如何在不同的数据库上加入Elount?您不能使用不同的连接来实现这一点,因此您应该执行以下操作: $result = DB::connection('database1')->table('contacts')->get() ->union( DB:

如何在Laravel中从两个不同的数据库运行这个简单的Mysql查询

SELECT * FROM database1.table1, database2.table2

以及我如何在不同的数据库上加入Elount?

您不能使用不同的连接来实现这一点,因此您应该执行以下操作:

$result = DB::connection('database1')->table('contacts')->get()
            ->union(
                DB::connection('database2')->table('contacts')->get()
            );
如果查询生成器为,则不返回集合:

$result = collect(DB::connection('database1')->table('contacts')->get())
            ->union(
                collect(DB::connection('database2')->table('contacts')->get())
            );

您不能使用不同的连接来执行此操作,因此您应该执行以下操作:

$result = DB::connection('database1')->table('contacts')->get()
            ->union(
                DB::connection('database2')->table('contacts')->get()
            );
如果查询生成器为,则不返回集合:

$result = collect(DB::connection('database1')->table('contacts')->get())
            ->union(
                collect(DB::connection('database2')->table('contacts')->get())
            );

正如我提到的,如果数据库在同一台服务器上,并且mysql用户可以访问这两个数据库,那么可以使用
DB::raw

$q1 = DB::table(DB::raw('database1.table1 AS db1_tb1'))->select('*');
$results = DB::table(DB::raw('database2.table2 AS db2_tb2'))->select('*')
->union($q1)
->get();
对于连接:

DB::table(DB::raw('database1.table1 AS db1_tb1'))
   ->join(DB::raw('database2.table2 AS db2_tb2'),'db1_tb1.first_key','=','db2_tb2.second_key')

正如我提到的,如果数据库在同一台服务器上,并且mysql用户可以访问这两个数据库,那么可以使用
DB::raw

$q1 = DB::table(DB::raw('database1.table1 AS db1_tb1'))->select('*');
$results = DB::table(DB::raw('database2.table2 AS db2_tb2'))->select('*')
->union($q1)
->get();
对于连接:

DB::table(DB::raw('database1.table1 AS db1_tb1'))
   ->join(DB::raw('database2.table2 AS db2_tb2'),'db1_tb1.first_key','=','db2_tb2.second_key')

Hackerman-多个数据库?我不这么认为……如果数据库在同一台服务器上,并且mysql用户可以访问这两个数据库,那么您应该能够做到这一点,而不会出现任何问题。您可能只需要使用
DB::raw
Hackerman-多个数据库?我不这么认为……如果数据库在同一台服务器上,并且mysql用户可以访问这两个数据库,那么您应该能够做到这一点,而不会出现任何问题。您可能只需要使用
DB::raw
Ok,谢谢!如何加入多个数据库?手动?好的,谢谢!如何加入多个数据库?只是手动操作?