4

在 Yii2 中如何将数据从一张表插入到另一张表中。

在这里我有两张桌子table1table2

现在我需要的是当满足条件时我需要将特定数据从 传输table1table2.

所以帮助在 Yii2 中为这个场景编写插入查询

这是 yii2 文档中给出的插入查询

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 回答