CakePHP3:containとmatchingとinnerJoinWithの違い

メソッド 関連するデータを取得するか? 関連するデータに対して条件を設定し、元のテーブルを絞り込めるか?
contain
matching
innerJoinWith

注意事項:containとmatchingは排他利用ではない