我有三个表映射如下: paymentDetails< -employee< -designation。
现在我必须通过特定的员工名称从paymentDetails表中获取数据..
select *
from paymentDetails
where payment_date=date and employee.designation.desig_id=2;
我正在使用Yii2框架如何在Yii2中实现这一点。
我收到未知列错误。如何解决这个问题?
答案 0 :(得分:0)
$command = Yii::app()->db->createCommand()
->select(*)
->from('paymentDetails')
->where('payment_date=date')
->andWhere('employee.designation.desig_id=2')
答案 1 :(得分:0)
select *
from paymentDetails
where payment_date=date and employee.designation.desig_id=2;
这在SQL中也不起作用,因为你使用的是员工和名称,而你实际上并没有以任何方式加入它们。
现在您还没有向我们提供有关模型名称的任何详细信息,但它应该类似于
$paymentDetails = PaymentDetails::find()->joinWith('employee.designation')-where(['employee.designation.desig_id' => 2, 'payment_date' => 'date'])->all();
这将执行 选择 * 来自paymentDetails JOIN员工ON' theDefinedRelation' JOIN指定ON' theSecondDefinedRelation'其中payment_date = date和employee.designation.desig_id = 2;
无论如何,这将是漫长的一天,如果您不知道SQL失败的原因,您必须首先学习SQL。