1

コード:

$criteria = new CDbCriteria;
$criteria->select='id, name, count(events.id) AS event_relational';
$criteria->with=array('events');
$model = Profiles::model()->findAll($criteria);

応答:

[{"id":"1","name":"Profile 1","event_relational":"0"}]

コード 2:

$criteria = new CDbCriteria;
$criteria->select='id, name';
$criteria->with=array('events');
$model = Profiles::model()->findAll($criteria);

応答 2:

[{"id":"1","name":"Profile 1","event_relational":null},{"id":"2","name":"Profile 2","event_relational":null}...]


COUNT を使用すると、クエリは最初の MySQL エントリで停止します。コードですべてのエントリを返し、関係イベントがあるかどうかを確認したいと思います。

私が望む応答:

[{"id":"1","name":"Profile 1","event_relational":"0"},{"id":"2","name":"Profile 2","event_relational":"1"}...]
4

1 に答える 1

2

これを行うには、次のことを行う必要がありgroupますprofile.id

$criteria = new CDbCriteria;
$criteria->select='id, name, count(events.id) AS event_relational';
$criteria->with=array('events');
$criteria->group='t.id';
$model = Profiles::model()->findAll($criteria);
于 2012-10-30T11:29:22.643 に答える