在Yii2中如何将数据从一个表插入到另一个表中。
此处我有两个表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;
答案 0 :(得分:2)
QueryBuilder
' insert
方法返回:
return 'INSERT INTO ' . $schema->quoteTableName($table)
. ' (' . implode(', ', $names) . ') VALUES ('
. implode(', ', $placeholders) . ')';
因此,无法在此处指定SELECT
。
无法在核心中找到它,我认为它没有实现,因为它非常罕见。
您可以使用以下自定义SQL代码:
$sql = '...';
\Yii::$app->db->createCommand($sql)->execute();
有用的链接:
P.S。我还报告了问题here,因此将来可能会将其添加到核心。如果你现在想要重复使用它,你可以自己实现这样的方法。