* SELECT [#we49152b]

 $c->add(AuthorPeer::NAME, "taro");                      // WHERE name = 'taro' 
 $c->add(AuthorPeer::NAME, "taro", Criteria::NOT_EQUAL); // WHERE name <> 'taro'
 $authors = AuthorPeer::doSelect($c);

** Criteriaオペレーター [#f2dd502f]
- EQUAL (デフォルト)
- NOT_EQUAL
- GREATER_THAN
- LESS_THAN
- GREATER_EQUAL
- LESS_EQUAL
- LIKE
- NOT_LIKE
- IN
- CUSTOM 

** JOIN [#o6639eff]
 $c = new Criteria();
 $c->addJoin(ItemPeer::CATETORY_ID, CategoryPeer::ID, Criteria::INNER_JOIN);
 $itemList = ItemPeer::doSelect($c);
 
 // SELECT * FROM item JOIN category ON item.category_id = category.id

*** LEFT OUTER JOIN 他 [#nb9d278f]
 $c->addJoin(ItemPeer::CATETORY_ID, CategoryPeer::ID, 'LEFT OUTER JOIN');

** ORDER BY [#db6a9299]
 $c->addAscendingOrderByColumn(ItemPeer::ID);
 $c->addDescendingOrderByColumn(ItemPeer::ID);
※ 複数カラムによるソートは出来ない。

** GROUP BYしてCOUNT() [#q5f9eb15]
 SELECT COUNT(category_id) FROM item GROUP BY category_id

 $c->addSelectColumn('COUNT('.ItemPeer::CATEGORY_ID.')');
 $c->addSelectColumn(ItemPeer::CATEGORY_ID);
 $c->addGroupByColumn(ItemPeer::CATEGORY_ID) ;
 $stmt = ItemPeer::doSelectStmt($c);
 $rows = $stmt->fetchAll(PDO::FETCH_NUM);
 foreach ($rows as $r) {
    $count = $r[0];
    $category_id = $r[1];
 }
http://old.nabble.com/How-to-use-aggregate-functions--td18385850.html

** カラム名を指定して取得(設定) [#q40b6a7d]
 $age = $row->getByName('age');
 $row->setByName('age') = 18;

** 参考 [#dda1220f]
- http://wiki.encom.bz/index.php/Propel_Tips
- http://www.propelorm.org/wiki/Documentation/1.4
- http://trac.propelorm.org/wiki/Documentation/1.4
- http://www.propelorm.org/wiki/Documentation/1.5

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS