Этот вопрос похож на Найдите условия типа «НЕ СУЩЕСТВУЕТ» , за исключением того, что он работает с отношением hasMany.
Таблицы:
вопросы
id bigint
...
ответы
id bigint
вопрос_ид Bigint
...
Отношения это вопросы, у которых есть много ответов.
Запрос состоит в поиске идентификаторов вопросов, на которые нет ответов.
SQL может выглядеть как
select id from questions where not exists
(select * from answers where answers.question_id = questions.id)
Самый быстрый способ - просто запустить запрос () с оператором, но я хотел бы знать, есть ли способ CakePHP.
Я бы хотел избежать сценария NOT IN, поскольку это может привести к двум попаданиям в базу данных; Один для получения всех идентификаторов вопросов для вопросов, на которые есть ответы, а второй для получения всех идентификаторов вопросов для вопросов, на которые нет ответов.
Другим способом может быть помещение целого предложения where в массиве условий в виде одной записи. Я просто не уверен, что это лучшая практика.