この記事について CakePHPであるテーブルにWHERE句付きのテーブルをJOINさせたい場合、いろいろやり方があると思います。が、今回はAssociationを使ってなるべくCakePHPが推奨するやり方でデータを取得する方法を示したいと思います。 CakePHPの推奨するやり方 CakePHPでは、AssociationでObjectごとの関係を示し、contain()またはmatching()を使ってデータを取得するやり方がおすすめされています。 公式によれば、matching()はprimary modelのデータを制限したい時に使われ、contain()はassociationでprimary modelのものではないデータを取りたい時に使うように設計されています。場合によって使い分けましょう。 ケーススタディ 例を使った方がしっくりくると思うので、以下のようなシチュエーション