4

Yii2 で、あるテーブルから別のテーブルにデータを挿入する方法。

ここに 2 つのテーブルtable1とがありtable2ます。

今私が必要としているのは、条件が満たされたときに特定のデータを からtable1に転送する必要があるということtable2です。

Yii2でこのシナリオの挿入クエリを書くのを手伝ってください

これは、yii2 docs で指定された挿入クエリです。

Yii::$app->db->createCommand()
->insert('user', [
'name' => 'Sam',
'age' => 30,
])->execute();

しかし、Yii2クエリに従って変換するには、このクエリが必要です

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
4

1 に答える 1

4

QueryBuilderinsertメソッドはこれを返します:

return 'INSERT INTO ' . $schema->quoteTableName($table)
    . ' (' . implode(', ', $names) . ') VALUES ('
    . implode(', ', $placeholders) . ')';

したがって、ここで指定する方法はありませんSELECT

コアに見つかりません。かなりまれなケースであるため、実装されていないと思います。

カスタム SQL コードを次のように使用できます。

$sql = '...';

\Yii::$app->db->createCommand($sql)->execute();

便利なリンク:

PS私もここで問題を報告したので、将来的にコアに追加されるかもしれません。今すぐ繰り返し使用したい場合は、そのような方法を自分で実装できます。

于 2015-05-06T06:18:09.223 に答える