Php 如何使用左连接将Sql改写为Yii2?
我有一个db,需要计算两个表的值 表Forc:Php 如何使用左连接将Sql改写为Yii2?,php,mysql,sql,yii2,Php,Mysql,Sql,Yii2,我有一个db,需要计算两个表的值 表Forc: rft 因为 表Prod: w efr 结果 公式:$x=(w*efr)/rft*(1+(cos/10) 因此,对于原始SQL,它将是这样的: UPDATE Prod SET result = w*eft / (SELECT Forc.rft * (1 + Forc.cos / 10) FROM Forc WHERE Forc.id=Prod.id) 但我不知道它是如何使用左连接构建的
- rft
- 因为
- w
- efr
- 结果
$x=(w*efr)/rft*(1+(cos/10)
因此,对于原始SQL,它将是这样的:
UPDATE Prod
SET result = w*eft /
(SELECT Forc.rft * (1 + Forc.cos / 10)
FROM Forc
WHERE Forc.id=Prod.id)
但我不知道它是如何使用左连接构建的,尤其是在Yii2上。因此,当用户在公式中定义的单元格中输入值时,该请求必须更改值“result”
如何做到这一点?为什么不能对原始sql使用+
bindValue
?$connection=Yii::$app->getDb();$command=$connection->createCommand(“此处的查询”);$command->execute()是的,这是有效的。在问题中,我给出了一个简单公式的例子。对于任务,它是~20个相互关联的公式和不同的表。但是我认为通过Join
使用它更正确。例如,如何使用Join
我知道:$x=(newQuery())->select()->from()->leftJoin()->where()->groupBy()
。但是当我尝试使用加入时,使用更新
时,我遇到了一个错误。