[英]PHP, Laravel join results of two queries and display it selectively in a html/blade table
我正在嘗試合並/合並兩個(最好是更多個)查詢的結果。 然后在表格的刀片視圖中有選擇地顯示它,僅選擇幾列/屬性。 我正在嘗試用雄辯的Laravel,雄辯的/ querybuilder來做到這一點(我可以在純sql中做到這一點,但這當然不是重點),因為它將使用多重數據庫和表,並且可能在多個服務器上使用。 關鍵:這是一些代碼:
$query1 = Documents::join('warehouses', 'analyticsData.documents.warehouse', '=', 'analyticsData.warehouses.id')
->selectRaw(
' analyticsData.warehouses.name name,
analyticsData.documents.warehouse number,
SUM(analyticsData.documents.value) takings1'
)
->whereIn('analyticsData.documents.type', [1, 4, 5])
->whereDate('date', '>=', '2016-09-05')
->whereDate('date', '<=', '2016-09-10')
->limit('5000')
->groupBy('name1')
->get();
$query2 = Documents::join('warehouses', 'analyticsData.documents.warehouse', '=', 'analyticsData.warehouses.id')
->selectRaw(
' analyticsData.warehouses.name name,
analyticsData.documents.warehouse number,
SUM(analyticsData.documents.value) takings2')
->whereIn('analyticsData.documents.type', [1, 4, 5])
->whereDate('date', '>=', '2017-09-04')
->whereDate('date', '<=', '2017-09-09')
->limit('5000')
->groupBy('name1')
->get();
然后,通過foreach循環,我想在表中的刀片中的屏幕上顯示結果的選定列。 實際上,我已經待了幾天,並嘗試過將結果與array_merge合並為數組,但它只是將一個數組追加到另一個數組的末尾。 我需要SQL中的'(right)join'等效項。 “名稱”和“編號”列相同。 坦白說,所有的collection或array方法及其組合似乎都不起作用。 我將非常感謝您的幫助。
PS。 另外,如果有人碰巧知道我如何不能從特定查詢的列中獲取值的總和,而不使用selectRaw,那我會欣喜若狂。
我做了查詢生成器的多個聯接。
這是我的代碼:
$result = DB::table('sub_categories')->join('categories', 'sub_categories.category_id', '=', 'categories.id')
->join('main_categories', 'main_categories.id', '=', 'categories.main_category_id')
->where([['main_categories.text', '=', $mainCategory], ['categories.text', '=', $category], ['sub_categories.text', '=', $subCategory]])
->select('sub_categories.id as subject_id')->get();
這可能會有所幫助:
$result = DB::table('users')->where([['users.user_id', $userId], ['ad_is_verified', true]])
->join('ads', 'ads.user_id', '=', 'users.user_id')
->where('ads.ad_id', '=', $addId)->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.