2013-02-11 71 views
1

我對統計查詢的嘗試不起作用。從ModelA中的視圖中,我試圖查詢ModelB以查找ModelB中屬性Number的總數,其中狀態等於'D',AttributeB等於登錄用戶。Yii中的統計查詢

的關係:

enter image description here

關係查詢學嘗試:

'total' => array(self::STAT, 'TableB', 'TableAId', 'select'=>'SUM(Number)', 
      'condition'=>'Status="D" AND AttributeB='.Yii::app()->user->id), 
+0

你有什麼錯誤? – darkheir 2013-02-11 22:26:41

+0

它返回一個零值,它不在db – enfield 2013-02-11 22:35:06

+0

'TableBId'實際上應該是外鍵,我猜你在這種情況下是'TableAId',所以試着用'TableAId' – 2013-02-12 02:08:45

回答

0

當您指定relations(),確保任何關係定義的第三個參數是國外鍵與兩個表相關。

在您的情況下,與TableA和TableB相關的外鍵是TableAId(TableB中的列),而不是TableBId。因此,你的關係定義改成這樣:

'total' => array(self::STAT, 'TableB', 'TableAId', 'select'=>'SUM(Number)', 
    'condition'=>'Status="D" AND AttributeB='.Yii::app()->user->id), 

The guide解釋這一點,等等。

+0

對不起現有的代碼在我的應用程序中使用TableAId,這是一個印刷錯誤。我在我的問題中糾正了它。使用上面的代碼,雖然代碼輸出「0」 – enfield 2013-02-13 11:03:51

+0

是否啓用了SQL日誌記錄?是預期的SQL執行? – 2013-02-13 11:19:52