[英]Insert from select in laravel using eloquent
我正在使用 laravel 8。我想通過從一個表選擇到另一個表來插入多行。 我正在使用 DB::statement() 但現在想使用 eloquent 來實現。 這是我的示例代碼:
DB::statement("insert into bank_information (user_id, bank_id, account_name,account_number)
select applicant_id,bank_id,account_name,account_number from applicant_bank_information
where erec_applicant_bank_information.applicant_id =".$applicant_id);
如何使用單個 eloquent 命令執行此操作? 此外,在 laravel 中還有其他更智能/更快的方法嗎?
我不知道 Eloquent 方法,但是在 Laravel 5.7.17 之后,我們在查詢生成器 insertUsing() 中有一個新方法。 不幸的是,官方文檔中沒有提到這一點。
查詢構建器代碼將如下所示:
$select = DB::table('applicant_bank_information as abi')
->select('applicant_id','bank_id','account_name','account_number')
->where('abi.applicant_id', $applicant_id);
$rows_inserted = DB::table('bank_information')
->insertUsing(['user_id','bank_id', 'account_name','account_number'], $select);
測試和工作。 請記住,您不要使用 ->get() 運行 select 請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.