簡體   English   中英

Laravel 5.3上不同數據庫中的雄辯連接和查詢

[英]Eloquent joins and queries in different databases on Laravel 5.3

如何在Laravel中從兩個不同的數據庫運行此簡單的Mysql查詢?

SELECT * FROM database1.table1, database2.table2

以及我如何在不同數據庫上加入Eloquent?

您不能使用其他連接來執行此操作,因此應執行以下操作:

$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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM