mnv*_*mnv 6 php mysql symfony doctrine-orm dbal
我有一些标准,需要使用该标准基于 SELECT 创建 INSERT 查询。
查询应该是这样的:
INSERT INTO mytable (field1, field2)
SELECT f1, f2
FROM mytable2
JOIN mytable3 ON mytable3.field3 = mytable2.field2
WHERE mytable3.somefield = 'somevalue'
Run Code Online (Sandbox Code Playgroud)
编辑:
我知道如何构建 INSERT INTO VALUES 查询。但是我在 Criteria 对象中有 SELECT 的条件,我需要使用它们来构建 INSERT。
我需要这样的东西
public function myInsert(Criteria $criteria)
$qb = new QueryBuilder;
$qb->insert('mytable')
->values('field1, field2') // Is it possible
->select('f1, f2') // somthing like this?
->from('mytable2')
->innerJoin('mytable2', 'mytable3', 'mytable3',
'mytable3.field3 = mytable2.field2')
->where($criteria);
$qb->execute();
}
Run Code Online (Sandbox Code Playgroud)
小智 0
我认为你必须建立自己的陈述。应该是这样的。
$sql ="INSERT INTO mytable (field1, field2)
SELECT f1, f2
FROM mytable2
JOIN mytable3 ON mytable3.field3 = mytable2.field2
WHERE mytable3.somefield = 'somevalue'";
/** @var Connection $connection */
$connection = GeneralUtility::makeInstance(ConnectionPool::class)
->getConnectionForTable(self::TABLENAME);
/** @var DriverStatement $statement */
$statement = $connection->prepare($sql);
$statement->execute();
Run Code Online (Sandbox Code Playgroud)