Вложенный запрос.... как сделать

Здравствуйте как сделать запрос типа


'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);

не выходит. Или может есть какой другой способ посчитать в другой таблице число строк по условию который подойдет.

Только не отдельным запросом, это мне кажется фигня будет)

блин неужели никто не знает как посчитать кол-во строк в другой таблице ?

просто на подобный запрос Yii не ругается, но при попытке вывести $items[‘count’] говорит что неопределено…

Может как-то. что-то дописать нужно чтобы он увидел…

вопрос закрыт. если кому интересно у моделе нужно прописать в свойствах "cc"


public $cc;

Это отстойное решение. Вам нужна денормализация данных - добавьте в основную таблицу поле , которое будет хранить количество записей из другой таблицы. На вторую добавьте триггеры на обновление информации, которые будут обновлять данные в первой таблице.

Иначе рискуете получить некислую нагрузку на БД.