Symfony で INNER JOIN。簡単簡単。単なる備忘録です。
1: $c = new Criteria();
2: $c->addJoin(TablenameaPeer::TABLENAMEB_ID, TablenamebPeer::ID, 'INNER JOIN');
3: $c->add(TablenamebPeer::ID, 3);
4: $c->addDescendingOrderByColumn(TablenameaPeer::UPDATED_AT);
5: $result = TablenameaPeer::doSelect($c);
6:
7: foreach($result as $r) { print_r($r);
8: }
2行目のaddJoin($reft_column, $right_column, $option);がミソ。$optionのところにLEFT JOIN/JOIN OUTER JOINとか書けばINNER JOIN以外もいける。
いろいろ説明書いてみようかと考えたけどSQL見たほうが早いともう。上記で出来上がるSQLは下記のとおり(のはず。試してない。汗)
SELECT * FROM tablenamea INNER JOIN tablenameb ON tablenamea.tablenameb_id = tablenameb.id WHERE tablenameb.id = 3 ORDER BY tablenamea.updated_at;
oder by句はaddDescendingOrderByColumn()でOK。これくらいで一通りのSQLは組めるんじゃないかなぁ。
あとはlimit句とcount()くらいかな。