2014-11-24 57 views
0

条件下使用关系字段我有三个表格,如下所示:paymentDetails < -employee <-designation。Sql-如何在条件

现在我已经通过员工的具体名称摆脱paymentDetails表DATAS ..

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

,我使用Yii2框架我怎样才能在Yii2实现这一目标。

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

+1

把你想要的'from'子句中使用的表。 – 2014-11-24 12:37:36

+0

列* employee.designation.desig_id *在表中不存在* paymentDetails * – 2014-11-24 12:38:57

+0

paymentDetails表具有与雇员一一对应的关系和雇员具有指定的关系。 – karanlv00012 2014-11-24 12:50:16

回答

0
$command = Yii::app()->db->createCommand() 
    ->select(*) 
    ->from('paymentDetails') 
    ->where('payment_date=date')  
    ->andWhere('employee.designation.desig_id=2') 
+0

我已经尝试过这样...获取同样的错误。我的问题是与SQL或reltionship ..查询无法访问指定的详细信息employee.designation.deisg_id ... – karanlv00012 2014-11-24 13:30:41

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

这不会在SQL工作,要么,是东阳您正在使用的表employee和指定和你实际上并没有以任何方式加入他们的行列。

现在你还没有给我们关于该机型的名称的任何细节,但它应该是类似

$paymentDetails = PaymentDetails::find()->joinWith('employee.designation')-where(['employee.designation.desig_id' => 2, 'payment_date' => 'date'])->all(); 

这将执行 SELECT * 从paymentDetails JOIN员工在“theDefinedRelation”加入指定ON 'theSecondDefinedRelation'其中payment_date = date和employee.designation.desig_id = 2;

无论如何,这将是一个漫长的一天,如果你不知道为什么SQL失败,你必须先了解SQL。

+0

嗨,我不认为我需要这种复杂的查询。这只是通过指定员工和付款的特定日期来显示付款明细清单。我发现在phpmyadmin中执行的查询。我在sqlDataProvider中使用了相同的功能,它在添加参数时引发数据库异常。感谢@Gordon Linoff所做的评论。但是现在我坚持使用yii2框架。 – karanlv00012 2014-11-25 08:25:20