私のプロジェクトには古いバージョン (1.2) の Propel があります。クエリを作成したい:
SELECT city_id, COUNT(*) FROM House GROUP BY city_id
私は試した:
$c = new Criteria;
$c->addAsColumn('count', 'Count(' . HousePeer::CITY_ID . ')');
$this->results = HousePeer::doSelect($c);
しかし、これは機能しません-カウントなどなしで、データベースから最初のレコードのみを返します.
私も試しました:
$con = Propel::getConnection();
$sql = "SELECT city_id, COUNT(*) FROM House GROUP BY city_id";
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
$this->results = HousePeer::populateObjects($rs);
しかし、これは私を投げます
Error populating House object [wrapped: Invalid resultset column: 3]
SQLテーブルと同じものだけを受け取りたい:
city_id | count
1 | 2
2 | 4
3 | 3
等
またはCityPeerからCityという名前を取得します(CityとHouseの間に正しく関係があります)例:
city | count
New York | 2
Paris | 4
Washington | 3
しかし、Propel でこのクエリを使用することはできません。