Archives

Cakephpで普通にINNER JOINする12 月 28, 2008このエントリをはてなブックマークに追加

タイトルが微妙すぎて困る!
CakePHPのアソシエーションを使うと、基本LEFTでテーブルをJOINしてfindなどされると思います。
これをINNER JOINにしたい!といっても、hasOneとbelongsToでtype=>”INNER”を指定すればINNER JOINできるのは周知の事実でございますが、hasManyでできねーのかよ!って思って触ってたら案の定できたのでメモ。
まぁSum limitedさんところで書いてある方法にほとんど近いのですが、beforeFindに書くと別のfindでも使ってしまうし、うーんと思ってたんだけど、findAllじゃなくてfindを使えば大丈夫そうなんですよ。
テーブル
mysql> desc users;
+———-+——————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+———-+——————+——+—–+———+—————-+
| id | int(11) unsigned | NO [...]

CakePHPでgroup by構文を使う12 月 14, 2008このエントリをはてなブックマークに追加

CakePHPのmodelでgroup by使おうとしたのだけども、findAllじゃどうやらできないらしいのでソースをちらほら読んでたら機能はあるみたいなので試してみた(そりゃあるよな
Cakeのバージョンはcake_1.2.0.7692-rc3でございます。ちょっと古いな。
とりあえず↑にも書いたけど、findAllでやると無理っぽい。ので、findでfindAllのように実装すると細かいところまで設定できるようになってる。
cake/libs/model/model.php
Line.1767~
<?php
function find($conditions = null, $fields = array(), $order = null, $recursive = null) {
if (!is_string($conditions) || (is_string($conditions) && !array_key_exists($conditions, $this->_findMethods))) {
$type = ‘first’;
$query = array_merge(compact(’conditions’, ‘fields’, ‘order’, ‘recursive’), array(’limit’ => 1));
} else {
list($type, $query) = array($conditions, $fields);
[...]

MySQL High Availability12 月 10, 2008このエントリをはてなブックマークに追加

というMySQL公式のオフィシャルトレーニング受けてきたよ!
その前にいつの間にか久々だな。ネタねぇんだよ。反省。

左がテキストで、右が認定証?
ちなみにテキストは全部英語だよー\(^o^)/
ちなみに内容はこんな感じ [...]