sql >> データベース >  >> RDS >> Mysql

CakePHPおよびHABTMモデル制限エラー

    封じ込め可能な動作 を使用してみませんか

    // you would probably want the next line in the app_model ot be able to use it with all models
    $this->Post->actsAs = array('Containable')
    $params['conditions'] = array(
    );
    $params['contain'] = array(
        'Media' => array(
            'fields' => array(
                'type', 'path', 'title'
            ),
            'limit' => 1
        )
    );
    $this->Post->find('all', $params);
    

    編集:

    それを試して、このSQLを取得しました(モジュール<->タグ):

    SELECT `Module`.`id` FROM `modules` AS `Module` WHERE 1 = 1 
    

    および

    SELECT `Tag`.`id`, `ModulesTag`.`module_id`, `ModulesTag`.`tag_id` 
    FROM `tags` AS `Tag` 
    JOIN `modules_tags` AS `ModulesTag` 
      ON (`ModulesTag`.`module_id` IN (1, 2, 3, 4) AND `ModulesTag`.`tag_id` = `Tag`.`id`) 
    WHERE `Tag`.`belongs_to` = 'Module' 
    ORDER BY `Tag`.`name` ASC 
    LIMIT 1
    

    モジュールの結果ごとにクエリを実行する必要があるため、明らかに目的の結果を返すことはできません(その場合も、クエリが多すぎます)。

    結論として、結果行が多すぎる場合のオーバーヘッドはクエリが多すぎる場合のオーバーヘッドよりも優れているため、すべてのタグ(私の例では)を返します。



    1. MySQLのenumまたはchar(1)

    2. それらのいくつかを削除した後のmysqlテーブルの行IDのギャップを修正する

    3. MySQLにデータをロードするためのBashスクリプト

    4. :OLDおよび:NEW疑似レコードをOracleストアドプロシージャにコピーできますか?