GibsonG
(Clouds)
April 4, 2011, 2:20pm
1
Здравствуйте как сделать запрос типа
'SELECT t.*, (SELECT COUNT(id) AS count FROM comments WHERE controller = "books" AND row_id = t.id) AS cc FROM books AS t
пробовал прописать вложенный запрос в CDbCriteria
$criteria = new CDbCriteria;
$criteria->select = '*, (SELECT COUNT(*) FROM comments) AS cc';
$items = $model->findAll($criteria);
не выходит. Или может есть какой другой способ посчитать в другой таблице число строк по условию который подойдет.
Только не отдельным запросом, это мне кажется фигня будет)
GibsonG
(Clouds)
April 7, 2011, 2:44pm
2
блин неужели никто не знает как посчитать кол-во строк в другой таблице ?
просто на подобный запрос Yii не ругается, но при попытке вывести $items[‘count’] говорит что неопределено…
Может как-то. что-то дописать нужно чтобы он увидел…
GibsonG
(Clouds)
April 7, 2011, 3:32pm
3
вопрос закрыт. если кому интересно у моделе нужно прописать в свойствах "cc"
public $cc;
mitallast
(Mitallast)
April 28, 2011, 4:18am
4
Это отстойное решение. Вам нужна денормализация данных - добавьте в основную таблицу поле , которое будет хранить количество записей из другой таблицы. На вторую добавьте триггеры на обновление информации, которые будут обновлять данные в первой таблице.
Иначе рискуете получить некислую нагрузку на БД.