0
我想用表中的同一組計數記錄。我知道這是可以輕鬆實現的查詢和是的,我已經做到了,但我正在考慮將主要模型和搜索模型的計數的正確方法。添加顯示同一組gridview下的記錄數的列yii2
數據庫看起來是這樣的:
Device
----------------------------
id name group_id
1 Phone Sony 2
2 Computer 1
3 Printer 1
4 Phone LG 1
Group
----------------------------
id name
1 Home
2 Office
輸出表:
Group Name Device Count
Home 1
Office 3
我已經做控制器上的查詢做到了這一點。
SELECT COUNT(*)
FROM `hosts`
WHERE group_id = *~DESIRED NUMBER HERE~*
我在尋找更好的方法。我是SQL新手,我認爲joining tables
是正確的方法,但我仍然不確定。
在GroupSearch
模型,我會補充一點:
$dataProvider->setSort(['attributes' => [
'devicecount' => [
'asc' => [ 'devicecount' => SORT_ASC ],
'desc' => [ 'devicecount' => SORT_DESC ],
],
]
]);
由於devicecount
不可用表中它會顯示一個錯誤。我應該在哪裏計算相同的store_id?在Device
型號或Group
型號下?我怎樣才能把它們分類?
謝謝!我很抱歉,但我很難理解你的答案。你的桌子是什麼樣的?你在哪裏放置了你的查詢? – Gibs
如何添加' - > where(* some condition *)'? – Gibs
@Gibs這個例子取自文檔。根據你的情況糾正它。你可以在' - > all()'調用之前將它添加爲' - >和Where()'。 – arogachev