我可以使用模型在 cakephp 中创建此查询吗?
INSERT INTO table (name,age)
SELECT name, age
FROM table2
WHERE age >= 50
您有 2 个选择:
丑陋的一个:使用Model::query。 除非绝对必要,否则请勿使用此功能
体面的:(我不会给你复制/粘贴解决方案,而是给你想法)
这仍然出现在搜索中,所以这是更新。
一般来说,使用实体和save()来插入数据比较容易。通过将 SELECT 和 INSERT 查询组合在一起,您可以创建 INSERT INTO ... SELECT 样式查询:
$select = $articles->find() ->select(['title', 'body', 'published']) ->where(['id' => 3]); $query = $articles->insertQuery() ->insert(['title', 'body', 'published']) ->values($select) ->execute();
适用于:
(参见第三个例子。)