Sql-如何在条件中使用关系字段

时间:2014-11-24 12:30:55

标签: mysql yii2

我有三个表映射如下: paymentDetails< -employee< -designation。

现在我必须通过特定的员工名称从paymentDetails表中获取数据..

select * 
from paymentDetails
where payment_date=date and employee.designation.desig_id=2;

我正在使用Yii2框架如何在Yii2中实现这一点。

我收到未知列错误。如何解决这个问题?

2 个答案:

答案 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&​​#39; theDefinedRelation' JOIN指定ON' theSecondDefinedRelation'其中payment_date = date和employee.designation.desig_id = 2;

无论如何,这将是漫长的一天,如果您不知道SQL失败的原因,您必须首先学习SQL。