0

私はcakephpに取り組んでいて、結合を実装しようとしています。または内部結合クエリ...私が今していることはこれです

$this->bindModel(array(
    'belongsTo' => array(
        'Contact' => array(
            'className' => 'Contact',
            'foreignKey' => false,
            'conditions' => array(
                'Message.user_id = Contact.user_id',
                'Message.mobileNo = Contact.mobileNo'
            )
        )
    )
), false);

return $message_details = $this->find('all', array(
    'conditions' => array(),
    'fields' => array('DISTINCT mobileNo')
));

このクエリは、テーブルのLEFT JOINを実行しています.. 2 つのテーブル間の結合または内部結合が必要です

4

2 に答える 2

1

ドキュメントに記載されているように、属している構成で結合のタイプを指定できます。デフォルトは左ですが、任意の有効な結合タイプを使用できます。構成配列に追加'type' => 'inner'するだけで、次のようになります。

$this->bindModel(array(
    'belongsTo' => array(
        'Contact' => array(
            'className' => 'Contact',
            'foreignKey' => false,
            'conditions' => array(
                'Message.user_id = Contact.user_id',
                'Message.mobileNo = Contact.mobileNo'
            ),
            'type' => 'inner' // Simply add this
        )
    )
), false);
于 2013-07-04T14:06:37.267 に答える