Php 如何使用左连接将Sql改写为Yii2?

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) 但我不知道它是如何使用左连接构建的

我有一个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)
但我不知道它是如何使用左连接构建的,尤其是在Yii2上。因此,当用户在公式中定义的单元格中输入值时,该请求必须更改值“result”


如何做到这一点?

为什么不能对原始sql使用+
bindValue
$connection=Yii::$app->getDb();$command=$connection->createCommand(“此处的查询”);$command->execute()是的,这是有效的。在问题中,我给出了一个简单公式的例子。对于任务,它是~20个相互关联的公式和不同的表。但是我认为通过
Join
使用它更正确。例如,如何使用
Join
我知道:
$x=(newQuery())->select()->from()->leftJoin()->where()->groupBy()
。但是当我尝试使用
加入
时,使用
更新
时,我遇到了一个错误。