Mysql
 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 (Module <-> Tag):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам една и съща MySQL връзка(и) за цялото си приложение Node.js?

  2. Пропуски и острови на 2 колони - ако колона A е последователна и колона B са идентични

  3. Автоматичната актуализация на Sphinx е индексна ли, когато добавяте данни към вашия SQL?

  4. Как да създадете локална база данни с помощта на mysql?

  5. Как да изчислим ранга от таблицата на mysql