2017-07-06 84 views
1

我知道這是一個寫得不好的查詢。我如何使用Laravel查詢構建器重新編寫此代碼?Laravel查詢生成器 - 如何使用連接格式化查詢

SELECT tgi.rate, tgi.tax_types_id, tt.name, tt.sales_chart_master_id, tt.purchase_chart_master_id 
FROM tax_group_items tgi, tax_types tt 
WHERE tgi.tax_groups_id = (SELECT tax_groups_id FROM customers WHERE id=2) 
AND tt.id = tgi.tax_types_id 
AND tt.id NOT IN (SELECT tax_types_id FROM item_tax_type_exemptions WHERE item_tax_types_id = (SELECT item_tax_types_id FROM products WHERE id = 1)) 
+0

發表您的口才型號太多 –

+0

請發佈模型類爲好。 – PdC

回答

0

如果您在模型類中發佈關係,答案會更容易,更清晰。如果您不知道如何定義關係,請轉至官方文檔的查詢生成器部分。 如果你不想定義關係,或不想使用它們,然後用這個

$query = DB::select('your query'); 
0
DB::table(DB::raw('tax_group_items tgi, tax_types tt')) 
    ->select(['tgi.rate', 'tgi.tax_types_id', 'tt.name', 'tt.sales_chart_master_id', 'tt.purchase_chart_master_id']) 
    ->whereRaw('tgi.tax_groups_id = (SELECT tax_groups_id FROM customers WHERE id=2)') 
    ->where('tt.id', 'tgi.tax_types_id') 
    ->whereRaw('tt.id NOT IN (SELECT tax_types_id FROM item_tax_type_exemptions WHERE item_tax_types_id = (SELECT item_tax_types_id FROM products WHERE id = 1))') 
    ->get(); 
相關問題