Maison  >  Article  >  base de données  >  Comment insérer des données d'une table à une autre à l'aide de Insert...Select dans Laravel ?

Comment insérer des données d'une table à une autre à l'aide de Insert...Select dans Laravel ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 19:46:021055parcourir

How to Insert Data from One Table to Another Using Insert...Select in Laravel?

Insertion de données à l'aide d'Insérer... Sélectionner dans Laravel

Afin d'insérer des données d'une table à une autre à l'aide de l'Insérer... Instruction Select dans Laravel, vous pouvez utiliser l'approche suivante :

Bien que l'ORM ou les requêtes éloquentes de Laravel ne prennent pas en charge les instructions Insert...Select directement, vous pouvez exploiter les connexions à la base de données sous-jacentes pour obtenir le résultat souhaité.

<code class="php">/* Obtain the original select query and its bindings */
$select = User::where(...)
                  ->where(...)
                  ->whereIn(...)
                  ->select(['email', 'moneyOwing']);
$bindings = $select->getBindings();

/* Construct the insert query */
$insertQuery = 'INSERT INTO user_debt_collection (email, dinero) ' . $select->toSql();

/* Execute the insert query using the bindings */
\DB::insert($insertQuery, $bindings);</code>

Mise à jour de Laravel 5.7 :

Dans Laravel 5.7.17 et versions ultérieures, vous pouvez également utiliser la méthode insertUsing() pour obtenir un résultat similaire :

<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn