2014-11-24 61 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